MIT-RACECAR入门教程-实验
MIT-RACECAR入门教程-实验
说明:
- 介绍如何进行相应实验
相关的实验:
- 参考源码
- ta_lab3: Wall following 沿墙运动
- ta_lab4: Visual servoing 红色椎体跟随及走S
- ta_lab5: Particle filter localization 定位
- ta_lab6: Pure Pursuit + A* Trajectory Planning 路径规划
安装源码:
- 安装
cd ~/racecar-ws/
# Add upstream TA repo
wstool set src/ta_examples_public --git "https://github.com/mit-racecar/TA_example_labs.git"
# Pull in new code from TA repo
wstool update
# Install ros deps
rosdep install -r --from-paths src --rosdistro kinetic -y
# build workspace
catkin_make
ta_lab3实验:
- 启动
roslaunch ta_lab3 example.launch
ta_lab4实验:
ta_lab5实验:
- 安装依赖(For RangeLibc:)
sudo pip install cython
git clone http://github.com/kctess5/range_libc
cd range_libc/pywrappers
# on VM
sudo python setup.py install
# on car - compiles GPU ray casting methods
sudo WITH_CUDA=ON python setup.py install
- 启动
roslaunch ta_lab5 localize.launch
- 有多种 "range_method" 模式可选,最快的是"rmgpu",如果安装了 RangeLibc+CUDA,可以优先使用。
ta_lab6实验:
- 安装依赖:
pip install recordclass
# this one will take a while
pip install scikit-image
- 轨迹跟踪
# For the car
roslaunch racecar teleop.launch
roslaunch ta_lab5 localize.launch
roslaunch ta_lab6 follow_trajectory.launch
# For simulation
roslaunch racecar_gazebo racecar_tunnel.launch
roslaunch ta_lab6 follow_trajectory.launch
roslaunch ta_lab6 trajectory_loader.launch
轨迹跟踪+路径规划(基于航点控制)
For the car
roslaunch racecar teleop.launch
roslaunch ta_lab5 localize.launch
roslaunch ta_lab6 follow_trajectory.launch
roslaunch ta_lab6 waypoint_control.launchFor simulation
roslaunch racecar_gazebo racecar_tunnel.launch
roslaunch ta_lab6 follow_trajectory.launch
roslaunch ta_lab6 waypoint_control.launch
- 在RVIZ中,先用2D Pose Estimate初始化定位,再使用 2D Nav Goal指定目标点,首先它会计划一个粗略的轨迹,然后改进该轨迹,然后尝试跟踪轨迹。
相关文件解析:
./launch 包含所有运行的文件
./launch/waypoint_control.launch
运行轨迹搜索,使用在odometry/particle filter中的位置作为开始点,监听RViz中的"2D Nav Goal"作为目标点
- ./launch/follow_trajectory.launch
运行轨迹跟踪,接收到轨迹后才会开始,可以是通过waypoint_control得到轨迹或load_trajectory得到轨迹。
- ./launch/build_trajectory.launch
允许手工生成轨迹,运行这个文件后,在RVIZ中使用"2D Nav Goal"指定路径中的航点,可增加/built_trajectory/path话题来查看建立的路径。当中止这个节点,会自动保存轨迹到文件系统里,并告诉你具体的文件路径。一般在/trajectories目录里。
- ./launch/load_trajectory.launch
从文件里载入轨迹,以序列化多边形格式发布它们,启动"follow_trajectory"后,再启动这个节点初始化轨迹跟踪
- ./src 所有的源码
- ./src/path_planner.py
实现两级A *搜索,第一级找到一个粗略的轨迹,第二级使用初始轨迹作为启发式来找到一条更平滑和更短的路径。
- ./src/pure_pursuit.py
实现轨迹跟踪。 固定速度。
- ./src/trajectory_builder.py
监听RVIZ中的2D Nav Goals,产生分段线性轨迹。关闭节点后保存结果到系统里。
- ./src/trajectory_loader.py
载入轨迹以序列化多变格式发布
- ./trajectories
包含一些轨迹的例子以及生成手工指定或航点控制的轨迹。
- ./rviz
包含RVIZ的配置文件,可在轨迹搜索或轨迹跟踪中可视化一些感兴趣的话题。
参考:
- https://mit-racecar.github.io/6.141-spring-2016-team-5-documentation/
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号