小米狗

  1. 自定义节点需要添加命名空间:

    1
    ros2 run test_my client_node_cpp --ros-args --remap __ns:=/`ros2 node list |grep "mi_" |head -n 1| cut -f 2 -d "/"`

    image-20240802193910228

    通过launch文件启动添加命名空间

    1
    ros2 launch laser_slam localization_node.py namespace:=$(ros2 node list | grep "mi_" | head -n 1 | cut -f 2 -d "/")

    但是要确保launch文件中有namespace

    image-20240805155900499

  2. 多相机同步曝光机制

    image-20240802201626147

  3. 视觉传感器参数

    1. exposure type 是曝光策略,global对高速运行友好,rolling反之,高速运动糊
    2. realsense的深度和左红外默认就是对齐

    image-20240802202149398

  4. 视觉建图

    启动节点都还需要lifecycle set

    image-20240802203634931

  5. 激光建图与定位

    1. 激光建图

      启动slam:打开终端,执行以下命令

      1
      2
      3
      ros2 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'}"

      image-20240802205135196

      lifecycle set xxx 1 是configure,3是activate

    2. 激光定位

      启动重定位程序

      打开终端执行以下命令

      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
      4
      ros2 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}"

      image-20240802205419914

  6. 在nomachine中不会自动刷新环境变量,需要执行以下命令

    source /opt/ros2/cyberdog/local_setup.bash

  7. rgb相机配置文件位置

    /opt/ros2/cyberdog/share/camera_test/config/stereo_camera.yaml