racebot入门教程-功能-利用ansible包实现启动脚本
racebot入门教程-功能-利用ansible实现启动脚本
说明:
- 介绍如何利用ansible实现启动脚本,通过这些脚本可以更便利启动相关的程序
- 测试环境: racebot小车和配套的虚拟机作为remote pc
- 也可以把racebot小车下的~/tools/remote/目录拷贝到自己搭建的PC环境对应目录下使用
相关设备:
- racebot套件,采购地址
步骤:
- [remote pc]配置主从环境
cd ~/tools/remote/client/shell/
vim load_ros.sh
配置ROS_MASTER_URI和ROS_HOSTNAME的ip为主从机对应的IP
方法如:PC配置的网络设置一节
[racebot]配置主从环境
cd ~/tools/remote/server/
vim load_ros.sh
- 方法同上
测试:
- [remote pc]进入脚本目录
cd ~/tools/remote/
- 查看目录结构:
├── ansible.cfg #配置文件
├── client #脚本
│ ├── ansible #旧版调用脚本(AiAnsi-Racebot v1.0)
│ │ ├── cartographer.sh
│ │ ├── gmapping.sh
│ │ ├── hector.sh
│ │ ├── karto.sh
│ │ ├── kill.sh
│ │ ├── minimal.sh
│ │ ├── test_imu.sh
│ │ └── test_laser.sh
│ ├── command.txt
│ ├── desktop #桌面启动
│ │ └── minimal.desktop
│ ├── readme.txt
│ ├── shell #PC端脚本
│ │ ├── load_gps_rviz.sh
│ │ ├── load_imu_rviz.sh
│ │ ├── load_laser_rviz.sh
│ │ ├── load_nav_rviz.sh
│ │ ├── load_roscore.sh
│ │ ├── load_ros.sh
│ │ └── load.sh
│ └── yml #旧版v1.0 playbook文件
│ ├── cartographer.yml #启动cartographer建图
│ ├── gmapping.yml #启动gmapping建图
│ ├── hector.yml #启动hector建图
│ ├── imu.yml #启动imu
│ ├── joy.yml #启动手柄
│ ├── karto.yml #启动karto建图
│ ├── kill.yml #关闭ros相关进程
│ ├── minimal.yml #启动底盘
│ ├── test_imu.yml #测试imu
│ ├── test_laser2.yml #测试雷达
│ └── test_laser.yml #测试雷达
├── commands #交互模式
│ └── test_client.sh
├── desktop #桌面
│ └── minimal.desktop
├── install_env.sh
├── inventory
│ └── hosts #主从配置文件,定制小车ip等,默认定义小车为server1
├── playbooks #新版v2.0调用脚本(AiAnsi-Racebot v2.0)
│ ├── cartographer.sh
│ ├── gmapping.sh
│ ├── hector.sh
│ ├── karto.sh
│ ├── kill.sh
│ ├── minimal.sh
│ ├── test_client.sh
│ ├── test_imu.sh
│ └── test_laser.sh
├── readme.txt
├── roles #新版v2.0,role角色,便于制作可以复用的角色
│ ├── client_gps_rviz #client开头为在pc上执行的角色
│ │ └── tasks
│ │ └── main.yml
│ ├── client_imu_rviz
│ │ └── tasks
│ │ └── main.yml
│ ├── client_nav_rviz
│ │ └── tasks
│ │ └── main.yml
│ ├── common #ansible role标准目录结构
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── README.md
│ │ ├── tasks
│ │ │ └── main.yml
│ │ ├── tests
│ │ │ ├── inventory
│ │ │ └── test.yml
│ │ └── vars
│ │ └── main.yml
│ ├── server_cartographer #server开头为小车执行的角色
│ │ └── tasks
│ │ └── main.yml
│ ├── server_gmapping
│ │ └── tasks
│ │ └── main.yml
│ ├── server_gps
│ │ └── tasks
│ │ └── main.yml
│ ├── server_hector
│ │ └── tasks
│ │ └── main.yml
│ ├── server_imu
│ │ └── tasks
│ │ └── main.yml
│ ├── server_joy
│ │ └── tasks
│ │ └── main.yml
│ ├── server_karto
│ │ └── tasks
│ │ └── main.yml
│ ├── server_kill
│ │ └── tasks
│ │ └── main.yml
│ ├── server_laser
│ │ └── tasks
│ │ └── main.yml
│ └── server_minimal
│ └── tasks
│ └── main.yml
├── server #服务器端启动脚本
│ ├── bashrc.txt
│ ├── config_bashrc.sh
│ ├── config_ip.sh
│ ├── config_local.sh
│ ├── kill.sh
│ ├── load_cartographer.sh
│ ├── load_gmapping.sh
│ ├── load_gps.sh
│ ├── load_hector.sh
│ ├── load_imu.sh
│ ├── load_joy.sh
│ ├── load_karto.sh
│ ├── load_laser.sh
│ ├── load_minimal.sh
│ ├── load_ros.sh
│ ├── load_vesc.sh
│ ├── load_zed.sh
│ ├── test.sh
│ └── test.txt
├── tests #测试目录
│ └── test.yml
└── yml #新版v2.0,playbook文件
├── cartographer.yml #启动cartographer建图
├── gmapping.yml
├── hector.yml
├── imu.yml
├── joy.yml
├── karto.yml
├── kill.yml
├── minimal.yml
├── test_gps.yml
├── test_imu.yml
└── test_laser.yml
测试底盘
- [remote pc]执行命令启动小车底盘:
./playbooks/minimal.sh
- 效果:
- 在小车端启动底盘
- [remote pc]查看话题
rostopic list
- 效果如下:
/diagnostics
/imu/data_raw
/imu/mag
/imu_data
/joint_states
/odom
/raw_odom
/rosout
/rosout_agg
/set_pose
/tf
/tf_static
/vesc/ackermann_cmd_mux/input/navigation
/vesc/ackermann_cmd_mux/input/safety
/vesc/ackermann_cmd_mux/input/teleop
/vesc/commands/motor/brake
/vesc/commands/motor/current
/vesc/commands/motor/duty_cycle
/vesc/commands/motor/position
/vesc/commands/motor/speed
/vesc/commands/motor/unsmoothed_speed
/vesc/commands/servo/position
/vesc/commands/servo/unsmoothed_position
/vesc/high_level/ackermann_cmd_mux/active
/vesc/high_level/ackermann_cmd_mux/input/default
/vesc/high_level/ackermann_cmd_mux/input/nav_0
/vesc/high_level/ackermann_cmd_mux/input/nav_1
/vesc/high_level/ackermann_cmd_mux/input/nav_2
/vesc/high_level/ackermann_cmd_mux/input/nav_3
/vesc/high_level/ackermann_cmd_mux/output
/vesc/high_level/ackermann_cmd_mux/parameter_descriptions
/vesc/high_level/ackermann_cmd_mux/parameter_updates
/vesc/high_level/ackermann_cmd_mux_nodelet_manager/bond
/vesc/low_level/ackermann_cmd_mux/active
/vesc/low_level/ackermann_cmd_mux/input/navigation
/vesc/low_level/ackermann_cmd_mux/input/safety
/vesc/low_level/ackermann_cmd_mux/input/teleop
/vesc/low_level/ackermann_cmd_mux/output
/vesc/low_level/ackermann_cmd_mux/parameter_descriptions
/vesc/low_level/ackermann_cmd_mux/parameter_updates
/vesc/low_level/ackermann_cmd_mux_nodelet_manager/bond
/vesc/sensors/core
/vesc/sensors/servo_position_command
测试zed
- [remote pc]启动相机
./playbooks/zed.sh
- 效果:
- 在小车端启动相机
测试手柄
- [remote pc]启动手柄
./playbooks/xbox.sh
- 效果:
- 在小车端启动手柄
测试g29
- [remote pc]启动g29方向盘
./playbooks/g29.sh
- 效果:
- 在remote pc端启动g29方向盘
测试IMU
- 执行命令:
./playbooks/imu.sh
- 效果:
- 在racebot小车上自动启动IMU
- 在remote pc上自动rviz显示imu
测试雷达
- 执行命令:
./playbooks/laser.sh
- 效果:
- 在racebot小车上自动启动test_laser
- 在remote pc上自动rviz显示激光数据
测试gmapping建图
- 执行命令:
./playbooks/gmapping.sh
- 效果:
- 在racebot小车上,启动底盘,雷达,手柄,gmapping建图
- 在remote pc上,自动启动rviz显示建图效果
测试cartographer建图
- 执行命令:
./playbooks/cartographer.sh
- 效果:
- 在racebot小车上,启动底盘,雷达,手柄,cartographer建图
- 在remote pc上,自动启动rviz显示建图效果
测试karto建图
- 执行命令:
./playbooks/karto.sh
- 效果:
- 在racebot小车上,启动底盘,雷达,手柄,karto建图
- 在remote pc上,自动启动rviz显示建图效果
测试hector建图
- 执行命令:
./playbooks/hector.sh
- 效果:
- 在racebot小车上,启动底盘,雷达,手柄,hector建图
- 在remote pc上,自动启动rviz显示建图效果
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号