ros版本:kinetic
树莓派3B版本:buster
raspicam_node版本:0.4.0
#sudo apt install dirmngr
1.添加ROS仓库
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
2.更新软件包
sudo apt update
3.安装Bootstrap依赖
sudo apt install python-rosdep python-rosinstall-generator python-wstool python-rosinstall python-catkin-tools python-psutil build-essential cmake
4.初始化rosdep
sudo rosdep init
rosdep update
5.创建catkin工作空间
mkdir -p ~/ros_catkin_ws
cd ~/ros_catkin_ws/
6.下载ROS包源码
rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
wstool init src kinetic-ros_comm-wet.rosinstall
7.安装下载包的依赖
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r
catkin init
#源码安装boost 1.58
ROS Kinetic中大部分包使用的boost版本为1.58,如果使用apt-get安装,在链接ROS核心库 librosconsole 时会发生错误,故需要从源码安装libboost1.58
wget -O boost_1_58_0.tar.bz2 http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download
tar --bzip2 -xvf boost_1_58_0.tar.bz2
cd boost_1_58_0
./bootstrap.sh --with-libraries=all --with-toolset=gcc
./b2 toolset=gcc
sudo ./b2 install --prefix=/usr
sudo bash -c 'echo "/usr/lib" > /etc/ld.so.conf.d/mylib.conf'
sudo ldconfig
8.构建并安装
catkin config --install -i /opt/ros/kinetic -j 2
sudo catkin build
9.测试ROS Master节点
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
a.输入roscore,运行Master节点
b.在另一个终端执行rostopic list,会看到/rosout 和 /rosout_agg 的topic
10.添加和更新ROS包
a.以添加joy包为例,首先需要创建一个新的rosinstall文件
rosinstall_generator joy --rosdistro kinetic --deps --wet-only --tar > joy.rosinstall
b.然后把他和我们的workspace进行合并
wstool merge joy.rosinstall -t src
wstool update -t src
c.安装相应包的依赖
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r
d.重新构建
sudo catkin build
11.安装raspicam_node, rosdep版本为0.18.0, 系统是原生Raspbian buster
a.首先按照raspicam_node的README一步步来,地址:
https://github.com/UbiquityRobotics/raspicam_node.git
b.在执行rosdep这一步,debian系统会报错,提示缺少各种依赖包的定义
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
c.手动解决每一个依赖即可
参考: https://venelinpetkov.com/2017/11/19/how-to-install-a-raspberry-camera-node-on-ros-kinetic-raspbian-stretch/
0x1: 添加依赖包
rosinstall_generator compressed_image_transport --rosdistro kinetic --deps --wet-only --tar > kinetic-compressed_image_transport-wet.rosinstall
rosinstall_generator camera_info_manager --rosdistro kinetic --deps --wet-only --tar > kinetic-camera_info_manager-wet.rosinstall
rosinstall_generator dynamic_reconfigure --rosdistro kinetic --deps --wet-only --tar > kinetic-dynamic_reconfigure-wet.rosinstall
rosinstall_generator diagnostic_updater --rosdistro kinetic --deps --wet-only --tar > kinetic-diagnostic_updater-wet.rosinstall
0x2: 合并到workspace并更新
wstool merge -t src kinetic-compressed_image_transport-wet.rosinstall
wstool merge -t src kinetic-camera_info_manager-wet.rosinstall
wstool merge -t src kinetic-dynamic_reconfigure-wet.rosinstall
wstool merge -t src kinetic-diagnostic_updater-wet.rosinstall
wstool update -t src
d.接着之前出错的那一步
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
e.重新构建
sudo catkin build
PS: 我到这里不知道为什么找不到catkin命令了,但是看python-catkin-tools包还在,又安装一下才好,不知道怎么回事
sudo apt-get install python-catkin-tools