< >
Home » RaceBot入门教程 » racebot入门教程-功能-利用ansible包实现启动脚本

racebot入门教程-功能-利用ansible包实现启动脚本

racebot入门教程-功能-利用ansible实现启动脚本

说明:

  • 介绍如何利用ansible实现启动脚本,通过这些脚本可以更便利启动相关的程序
  • 测试环境: racebot小车和配套的虚拟机作为remote pc
  • 也可以把racebot小车下的~/tools/remote/目录拷贝到自己搭建的PC环境对应目录下使用

相关设备:

步骤:

  • [remote pc]配置主从环境
cd ~/tools/remote/client/shell/
vim load_ros.sh
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
  • 效果:
    1. 在racebot小车上自动启动IMU
    1. 在remote pc上自动rviz显示imu

测试雷达

  • 执行命令:
./playbooks/laser.sh
  • 效果:
    1. 在racebot小车上自动启动test_laser
    1. 在remote pc上自动rviz显示激光数据

测试gmapping建图

  • 执行命令:
./playbooks/gmapping.sh
  • 效果:
    1. 在racebot小车上,启动底盘,雷达,手柄,gmapping建图
    1. 在remote pc上,自动启动rviz显示建图效果

测试cartographer建图

  • 执行命令:
./playbooks/cartographer.sh
  • 效果:
    1. 在racebot小车上,启动底盘,雷达,手柄,cartographer建图
    1. 在remote pc上,自动启动rviz显示建图效果

测试karto建图

  • 执行命令:
./playbooks/karto.sh
  • 效果:
    1. 在racebot小车上,启动底盘,雷达,手柄,karto建图
    1. 在remote pc上,自动启动rviz显示建图效果

测试hector建图

  • 执行命令:
./playbooks/hector.sh
  • 效果:
    1. 在racebot小车上,启动底盘,雷达,手柄,hector建图
    1. 在remote pc上,自动启动rviz显示建图效果

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: racebot入门教程