ros
1.gazebo
1.1 gazebo models,下载离线模型,解决启动卡顿
https://blog.csdn.net/qq_36170626/article/details/90417359
cd ~/.gazebo/
mkdir -p models
cd ~/.gazebo/models/
wget http://file.ncnynl.com/ros/gazebo_models.txt
wget -i gazebo_models.txt
ls model.tar.g* | xargs -n1 tar xzvf
1.2 任意形式gazebo模型
在solidworks中零件图或者装配图,建立坐标系确定O-XYZ,另存为.STL,坐标系选择自己创建的坐标系。
cd .gazebo/models
参考arm_part创建。
2.ros安装
https://blog.csdn.net/haiyinshushe/article/details/84256137
https://blog.csdn.net/m0_50851031/article/details/110764779
https://blog.csdn.net/beyondcn2008/article/details/85010768
编译指定功能包
cd ros_catkin_ws
./src/catkin/bin/catkin_init_workspace --install --pkg roscpp
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
3.cartographer
3.1编译安装
https://google-cartographer-ros.readthedocs.io/en/latest/
gedit .bashrc
4.costmap
4.1 介绍
https://blog.csdn.net/jinking01/article/details/79455962
4.2 添加障碍物
源码
https://github.com/rst-tu-dortmund/costmap_prohibition_layer
源码解读
https://blog.csdn.net/Neo11111/article/details/104852657/
操作
https://blog.csdn.net/qq_41995710/article/details/88750354
5.局部规划算法
5.1teb算法
github
teb_localplanner源码学习
论文翻译
5.2g2o算法
5.3dwa算法
ROS源码阅读—局部路径规划之DWAPlannerROS分析
ros_dwa
机器人局部避障的动态窗口法(dynamic window approach)
6. move_base
##6.1 move_base设置目标点
使用move_base做4个点循环跑的导航添加链接描述
7. 通信
7.1 action
8.行为树
9.网络代理
env |grep -i proxy //查看代理
export HTTP_PROXY="" //设置
设置->网络->网络代理->关闭。
10. 技巧
10.1调整参数
https://blog.csdn.net/qq_15390133/article/details/107875674
11. teb插件
1.编译报错,return new C,是因为configue函数没有重载,照着基函数,把configue的形参写得一模一样,问题是const和&。
2.加载不了插件,plugin.xml文件中加<class_libraries>
<class_libraries>
<library path="teb_local_planner">
<class type="teb_local_planner::TebLocalPlannerROS" base_class_type="nav2_core::Controller">
<description>
The teb_local_planner package implements a plugin
to the base_local_planner of the 2D navigation stack.
</description>
</class>
</library>
</class_libraries>
cmakelist中
install(TARGETS teb_local_planner
# DESTINATION lib
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)
3.另起终端,重新编译。