小米狗
小米狗
自定义节点需要添加命名空间:
1
ros2 run test_my client_node_cpp --ros-args --remap __ns:=/`ros2 node list |grep "mi_" |head -n 1| cut -f 2 -d "/"`
通过launch文件启动添加命名空间
1
ros2 launch laser_slam localization_node.py namespace:=$(ros2 node list | grep "mi_" | head -n 1 | cut -f 2 -d "/")
但是要确保launch文件中有namespace
多相机同步曝光机制
视觉传感器参数
- exposure type 是曝光策略,global对高速运行友好,rolling反之,高速运动糊
- realsense的深度和左红外默认就是对齐
视觉建图
启动节点都还需要lifecycle set
激光建图与定位
激光建图
启动slam:打开终端,执行以下命令
1
2
3ros2 launch laser_slam mapping_launch.py
ros2 lifecycle set /map_builder 1
ros2 lifecycle set /map_builder 3启动建图服务:打开另一个终端
1
ros2 service call /start_mapping std_srvs/srv/SetBool data:\ true
保存地图和pose信息
1
ros2 service call /stop_mapping visualization/srv/Stop "{finish: true,map_name: 'map'}"
lifecycle set xxx 1 是configure,3是activate
激光定位
启动重定位程序
打开终端执行以下命令
1
ros2 launch laser_slam localization_node.py
添加命名空间
1
ros2 launch laser_slam localization_node.py namespace:=$(ros2 node list | grep "mi_" | head -n 1 | cut -f 2 -d "/")
打开另一个终端
1
2
3
4ros2 lifecycle set /localization_node 1
ros2 lifecycle set /localization_node 3
ros2 service call /start_location std_msgs/srv/SetBool "data:true" //跑不通
ros2 service call /start_location std_srvs/srv/SetBool "{data: true}"
在nomachine中不会自动刷新环境变量,需要执行以下命令
source /opt/ros2/cyberdog/local_setup.bash
rgb相机配置文件位置
/opt/ros2/cyberdog/share/camera_test/config/stereo_camera.yaml