works on robot
This commit is contained in:
@@ -0,0 +1,67 @@
|
|||||||
|
from launch import LaunchDescription
|
||||||
|
from launch.actions import IncludeLaunchDescription, DeclareLaunchArgument
|
||||||
|
from launch.substitutions import (
|
||||||
|
PathJoinSubstitution,
|
||||||
|
LaunchConfiguration,
|
||||||
|
)
|
||||||
|
from launch.launch_description_sources import PythonLaunchDescriptionSource
|
||||||
|
from launch_ros.substitutions import FindPackageShare
|
||||||
|
from launch_ros.actions import Node
|
||||||
|
from launch_ros.descriptions import ParameterFile
|
||||||
|
|
||||||
|
def generate_launch_description():
|
||||||
|
pkg_unity_robot_controller = FindPackageShare(package="").find("unity_robot_controller")
|
||||||
|
|
||||||
|
# Launch arguments
|
||||||
|
launch_args = [
|
||||||
|
DeclareLaunchArgument(
|
||||||
|
"joy_model",
|
||||||
|
description="Used joystick model (default is T-29)",
|
||||||
|
default_value="T-29.yaml",
|
||||||
|
),
|
||||||
|
DeclareLaunchArgument(
|
||||||
|
"namespace", default_value="sirius_bot", description="Top-level namespace"
|
||||||
|
),
|
||||||
|
# DeclareLaunchArgument(
|
||||||
|
# "start_rviz", default_value="True", description="Use basic rviz"
|
||||||
|
# ),
|
||||||
|
]
|
||||||
|
|
||||||
|
joy_config = PathJoinSubstitution([pkg_unity_robot_controller, "config", "joy_config.yaml"])
|
||||||
|
|
||||||
|
model = LaunchConfiguration("joy_model")
|
||||||
|
joy_params = PathJoinSubstitution([pkg_unity_robot_controller,
|
||||||
|
"config",
|
||||||
|
model
|
||||||
|
])
|
||||||
|
|
||||||
|
joy_node = Node(
|
||||||
|
package="joy",
|
||||||
|
executable="joy_node",
|
||||||
|
name="joy",
|
||||||
|
namespace=LaunchConfiguration("namespace"),
|
||||||
|
output="both",
|
||||||
|
parameters=[
|
||||||
|
ParameterFile(joy_config),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
joy_wave_rover_controller_node = Node(
|
||||||
|
package="wave_rover_controller",
|
||||||
|
executable="joy_control_node",
|
||||||
|
name="joy_control",
|
||||||
|
# output="screen",
|
||||||
|
namespace=LaunchConfiguration("namespace"),
|
||||||
|
parameters=[
|
||||||
|
ParameterFile(joy_params),
|
||||||
|
{'serial_port': '/dev/ttyUSB0'}]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
return LaunchDescription(
|
||||||
|
launch_args
|
||||||
|
+ [
|
||||||
|
joy_node,
|
||||||
|
joy_wave_rover_controller_node,
|
||||||
|
]
|
||||||
|
)
|
||||||
@@ -13,9 +13,10 @@ setup(
|
|||||||
['resource/' + package_name]),
|
['resource/' + package_name]),
|
||||||
('share/' + package_name, ['package.xml']),
|
('share/' + package_name, ['package.xml']),
|
||||||
(os.path.join('share', package_name, 'launch'), [f for f in glob('launch/*') if os.path.isfile(f)]) ,
|
(os.path.join('share', package_name, 'launch'), [f for f in glob('launch/*') if os.path.isfile(f)]) ,
|
||||||
(os.path.join('share', package_name, 'config'), [f for f in glob('config/*') if os.path.isfile(f)]) ,
|
#(os.path.join('share', package_name, 'config'), [f for f in glob('config/*') if os.path.isfile(f)]) ,
|
||||||
],
|
],
|
||||||
install_requires=['setuptools'],
|
install_requires=['setuptools',
|
||||||
|
'pyserial'],
|
||||||
zip_safe=True,
|
zip_safe=True,
|
||||||
maintainer='anton',
|
maintainer='anton',
|
||||||
maintainer_email='moscowskyad@yandex.ru',
|
maintainer_email='moscowskyad@yandex.ru',
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import rclpy
|
import rclpy
|
||||||
from wave_rover_controller.robot_controller.robot_controller import WaveRoverController
|
from wave_rover_controller.wave_rover_controller import WaveRoverController
|
||||||
from unity_robot_controller.joy_control_node import JoyControlNode
|
from unity_robot_controller.joy_control_node import JoyControlNode
|
||||||
|
|
||||||
def main(args=None):
|
def main(args=None):
|
||||||
Submodule wave_rover_controller/robot_controller updated: 9f65622b63...b34711ebc6
@@ -4,8 +4,9 @@ import rclpy
|
|||||||
from rclpy.node import Node
|
from rclpy.node import Node
|
||||||
from wave_rover_controller.robot_controller.robot_controller import RobotController
|
from wave_rover_controller.robot_controller.robot_controller import RobotController
|
||||||
from serial import Serial
|
from serial import Serial
|
||||||
from serial.exceptions import SerialException
|
from serial import SerialException
|
||||||
import json
|
import json
|
||||||
|
import time
|
||||||
|
|
||||||
class WaveRoverController(RobotController):
|
class WaveRoverController(RobotController):
|
||||||
|
|
||||||
@@ -14,9 +15,11 @@ class WaveRoverController(RobotController):
|
|||||||
|
|
||||||
self._node = node
|
self._node = node
|
||||||
|
|
||||||
|
self._node.declare_parameter('serial_port', '/dev/ttyUSB0')
|
||||||
|
self._node.declare_parameter('baudrate', 115200)
|
||||||
|
|
||||||
self._serial_port = self.declare_parameter('serial_port', '/dev/ttyUSB0').value
|
self._serial_port = self._node.get_parameter('serial_port').value
|
||||||
self._baudrate = self.declare_parameter('baudrate', 115200).value
|
self._baudrate = self._node.get_parameter('baudrate').value
|
||||||
|
|
||||||
wheel_max = 0.5 # popugais
|
wheel_max = 0.5 # popugais
|
||||||
self._linear_max = wheel_max
|
self._linear_max = wheel_max
|
||||||
@@ -71,8 +74,8 @@ class WaveRoverController(RobotController):
|
|||||||
"""Twist -> скорости колес для дифференциального привода"""
|
"""Twist -> скорости колес для дифференциального привода"""
|
||||||
wheel_base = 0.2 # м
|
wheel_base = 0.2 # м
|
||||||
|
|
||||||
left_speed = (linear_x - (wheel_base * angular_z) / 2) / self.max_linear_speed
|
left_speed = (linear_x - (wheel_base * angular_z) / 2) #/ self.max_linear_speed
|
||||||
right_speed = (linear_x + (wheel_base * angular_z) / 2) / self.max_linear_speed
|
right_speed = (linear_x + (wheel_base * angular_z) / 2) #/ self.max_linear_speed
|
||||||
|
|
||||||
left_speed = max(-1.0, min(1.0, left_speed))
|
left_speed = max(-1.0, min(1.0, left_speed))
|
||||||
right_speed = max(-1.0, min(1.0, right_speed))
|
right_speed = max(-1.0, min(1.0, right_speed))
|
||||||
|
|||||||
Reference in New Issue
Block a user