修改自定义消息
This commit is contained in:
parent
ac4c6c2816
commit
040a6d8040
@ -15,6 +15,10 @@ add_executable(ps2_reader src/ps2_reader.cpp)
|
|||||||
|
|
||||||
ament_target_dependencies(ps2_reader rclcpp rc_msgs) # 添加 rc_msgs 依赖
|
ament_target_dependencies(ps2_reader rclcpp rc_msgs) # 添加 rc_msgs 依赖
|
||||||
|
|
||||||
|
install(DIRECTORY launch
|
||||||
|
DESTINATION share/${PROJECT_NAME}/
|
||||||
|
)
|
||||||
|
|
||||||
install(TARGETS
|
install(TARGETS
|
||||||
ps2_reader
|
ps2_reader
|
||||||
DESTINATION lib/${PROJECT_NAME})
|
DESTINATION lib/${PROJECT_NAME})
|
||||||
|
15
src/ps2_controller/launch/ps2_controller.launch.py
Normal file
15
src/ps2_controller/launch/ps2_controller.launch.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
from launch import LaunchDescription
|
||||||
|
from launch_ros.actions import Node
|
||||||
|
|
||||||
|
def generate_launch_description():
|
||||||
|
return LaunchDescription([
|
||||||
|
Node(
|
||||||
|
package='ps2_controller',
|
||||||
|
executable='ps2_reader',
|
||||||
|
name='ps2_controller_node',
|
||||||
|
output='screen',
|
||||||
|
parameters=[
|
||||||
|
{'device': '/dev/input/js0'} # 可根据需要修改设备路径
|
||||||
|
]
|
||||||
|
)
|
||||||
|
])
|
@ -7,6 +7,9 @@ rosidl_generate_interfaces(${PROJECT_NAME}
|
|||||||
"msg/DataControl.msg"
|
"msg/DataControl.msg"
|
||||||
"msg/DataMotor.msg"
|
"msg/DataMotor.msg"
|
||||||
"msg/DataLeg.msg"
|
"msg/DataLeg.msg"
|
||||||
|
"msg/DataMotors.msg"
|
||||||
|
"msg/MotorCmd.msg"
|
||||||
|
"msg/MotorCmds.msg"
|
||||||
)
|
)
|
||||||
|
|
||||||
ament_package()
|
ament_package()
|
||||||
|
3
src/rc_msgs/msg/DataMotors.msg
Normal file
3
src/rc_msgs/msg/DataMotors.msg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
DataMotor data_motor_0
|
||||||
|
DataMotor data_motor_1
|
||||||
|
DataMotor data_motor_2
|
5
src/rc_msgs/msg/MotorCmd.msg
Normal file
5
src/rc_msgs/msg/MotorCmd.msg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
float32 tau
|
||||||
|
float32 vw
|
||||||
|
float32 pos
|
||||||
|
float32 kp
|
||||||
|
float32 kd
|
3
src/rc_msgs/msg/MotorCmds.msg
Normal file
3
src/rc_msgs/msg/MotorCmds.msg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
MotorCmd motor_cmd_0
|
||||||
|
MotorCmd motor_cmd_1
|
||||||
|
MotorCmd motor_cmd_2
|
27
src/robot_bringup/CMakeLists.txt
Normal file
27
src/robot_bringup/CMakeLists.txt
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.8)
|
||||||
|
project(robot_bringup)
|
||||||
|
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# find dependencies
|
||||||
|
find_package(ament_cmake REQUIRED)
|
||||||
|
|
||||||
|
install(DIRECTORY launch
|
||||||
|
DESTINATION share/${PROJECT_NAME}/
|
||||||
|
)
|
||||||
|
|
||||||
|
if(BUILD_TESTING)
|
||||||
|
find_package(ament_lint_auto REQUIRED)
|
||||||
|
# the following line skips the linter which checks for copyrights
|
||||||
|
# comment the line when a copyright and license is added to all source files
|
||||||
|
set(ament_cmake_copyright_FOUND TRUE)
|
||||||
|
# the following line skips cpplint (only works in a git repo)
|
||||||
|
# comment the line when this package is in a git repo and when
|
||||||
|
# a copyright and license is added to all source files
|
||||||
|
set(ament_cmake_cpplint_FOUND TRUE)
|
||||||
|
ament_lint_auto_find_test_dependencies()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
ament_package()
|
116
src/robot_bringup/launch/robot_bringup.launch.py
Normal file
116
src/robot_bringup/launch/robot_bringup.launch.py
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
from launch import LaunchDescription
|
||||||
|
from launch_ros.actions import Node
|
||||||
|
from launch_ros.actions import ComposableNodeContainer
|
||||||
|
from launch_ros.descriptions import ComposableNode
|
||||||
|
|
||||||
|
def generate_launch_description():
|
||||||
|
# 定义 leg_ctrl 的四个容器节点
|
||||||
|
lf_container = ComposableNodeContainer(
|
||||||
|
name='lf_motor_container',
|
||||||
|
namespace='',
|
||||||
|
package='rclcpp_components',
|
||||||
|
executable='component_container',
|
||||||
|
composable_node_descriptions=[
|
||||||
|
ComposableNode(
|
||||||
|
package='unitree_motor_serial_driver',
|
||||||
|
plugin='unitree_motor_serial_driver::MotorControlNode',
|
||||||
|
name='unitree_motor_serial_driver_lf',
|
||||||
|
parameters=[{'serial_port': '/dev/ttyACM0'}],
|
||||||
|
remappings=[
|
||||||
|
('data_leg_control', 'LF/data_leg_control'),
|
||||||
|
('data_leg_motor', 'LF/data_leg_motor')
|
||||||
|
]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output='screen',
|
||||||
|
)
|
||||||
|
|
||||||
|
rf_container = ComposableNodeContainer(
|
||||||
|
name='rf_motor_container',
|
||||||
|
namespace='',
|
||||||
|
package='rclcpp_components',
|
||||||
|
executable='component_container',
|
||||||
|
composable_node_descriptions=[
|
||||||
|
ComposableNode(
|
||||||
|
package='unitree_motor_serial_driver',
|
||||||
|
plugin='unitree_motor_serial_driver::MotorControlNode',
|
||||||
|
name='unitree_motor_serial_driver_rf',
|
||||||
|
parameters=[{'serial_port': '/dev/ttyACM1'}],
|
||||||
|
remappings=[
|
||||||
|
('data_leg_control', 'RF/data_leg_control'),
|
||||||
|
('data_leg_motor', 'RF/data_leg_motor')
|
||||||
|
]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output='screen',
|
||||||
|
)
|
||||||
|
|
||||||
|
lr_container = ComposableNodeContainer(
|
||||||
|
name='lr_motor_container',
|
||||||
|
namespace='',
|
||||||
|
package='rclcpp_components',
|
||||||
|
executable='component_container',
|
||||||
|
composable_node_descriptions=[
|
||||||
|
ComposableNode(
|
||||||
|
package='unitree_motor_serial_driver',
|
||||||
|
plugin='unitree_motor_serial_driver::MotorControlNode',
|
||||||
|
name='unitree_motor_serial_driver_lr',
|
||||||
|
parameters=[{'serial_port': '/dev/ttyACM2'}],
|
||||||
|
remappings=[
|
||||||
|
('data_leg_control', 'LR/data_leg_control'),
|
||||||
|
('data_leg_motor', 'LR/data_leg_motor')
|
||||||
|
]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output='screen',
|
||||||
|
)
|
||||||
|
|
||||||
|
rr_container = ComposableNodeContainer(
|
||||||
|
name='rr_motor_container',
|
||||||
|
namespace='',
|
||||||
|
package='rclcpp_components',
|
||||||
|
executable='component_container',
|
||||||
|
composable_node_descriptions=[
|
||||||
|
ComposableNode(
|
||||||
|
package='unitree_motor_serial_driver',
|
||||||
|
plugin='unitree_motor_serial_driver::MotorControlNode',
|
||||||
|
name='unitree_motor_serial_driver_rr',
|
||||||
|
parameters=[{'serial_port': '/dev/ttyACM3'}],
|
||||||
|
remappings=[
|
||||||
|
('data_leg_control', 'RR/data_leg_control'),
|
||||||
|
('data_leg_motor', 'RR/data_leg_motor')
|
||||||
|
]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output='screen',
|
||||||
|
)
|
||||||
|
|
||||||
|
# 定义 ahrs_driver 节点
|
||||||
|
ahrs_driver = Node(
|
||||||
|
package="fdilink_ahrs",
|
||||||
|
executable="ahrs_driver_node",
|
||||||
|
parameters=[{
|
||||||
|
'if_debug_': False,
|
||||||
|
'serial_port_': '/dev/ttyUSB0',
|
||||||
|
'serial_baud_': 921600,
|
||||||
|
'imu_topic': '/imu',
|
||||||
|
'imu_frame_id_': 'gyro_link',
|
||||||
|
'mag_pose_2d_topic': '/mag_pose_2d',
|
||||||
|
'Magnetic_topic': '/magnetic',
|
||||||
|
'Euler_angles_topic': '/euler_angles',
|
||||||
|
'gps_topic': '/gps/fix',
|
||||||
|
'twist_topic': '/system_speed',
|
||||||
|
'NED_odom_topic': '/NED_odometry',
|
||||||
|
'device_type_': 1
|
||||||
|
}],
|
||||||
|
output="screen"
|
||||||
|
)
|
||||||
|
|
||||||
|
# 返回主启动文件的描述
|
||||||
|
return LaunchDescription([
|
||||||
|
lf_container,
|
||||||
|
rf_container,
|
||||||
|
lr_container,
|
||||||
|
rr_container,
|
||||||
|
ahrs_driver
|
||||||
|
])
|
20
src/robot_bringup/package.xml
Normal file
20
src/robot_bringup/package.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
||||||
|
<package format="3">
|
||||||
|
<name>robot_bringup</name>
|
||||||
|
<version>0.0.0</version>
|
||||||
|
<description>TODO: Package description</description>
|
||||||
|
<maintainer email="1683502971@qq.com">robofish</maintainer>
|
||||||
|
<license>TODO: License declaration</license>
|
||||||
|
|
||||||
|
<buildtool_depend>ament_cmake</buildtool_depend>
|
||||||
|
|
||||||
|
<depend>launch</depend>
|
||||||
|
|
||||||
|
<test_depend>ament_lint_auto</test_depend>
|
||||||
|
<test_depend>ament_lint_common</test_depend>
|
||||||
|
|
||||||
|
<export>
|
||||||
|
<build_type>ament_cmake</build_type>
|
||||||
|
</export>
|
||||||
|
</package>
|
Loading…
Reference in New Issue
Block a user