一、安装ROS
是有ros的wiki网站的:http://wiki.ros.org/kinetic/Installation/Ubuntu
1、从 packages.ros.org.添加ROS软件源,打开命令行输入以下代码:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2、建密钥,输入以下代码
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3、更新软件包
sudo apt-get update
4、安装ROS Kinetic
sudo apt-get install ros-kinetic-desktop-full
安装完成后,可以用下面的命令来查看可使用的包:
apt-cache search ros-kinetic
5、初始化ros
sudo rosdep init
在这一步我好像就报错了,具体错误记不清了,记得是python2和python3的问题,之前配置的深度学习环境直接用的anaconda中的python3作为默认的python,搜了搜切换了python2
在重新运行命令还是报错:
解决办法是:
sudo gedit /etc/hosts 打开文件,
添加:151.101.84.133 raw.githubusercontent.com
再次重新运行还是报错:
error:default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list please delete if you wish to re-initialize
删掉文件,重新sudo rosdep init
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
sudo rosdep init
通过之后在运行命令:
rosdep update
这一步也是相当的折磨人
解決办法:这里我强烈建议先按照这篇博客改,多试几次,实在不行在参考下面
先打开sources_list.py,在其中添加代码
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
参考这里
总是更新不成功,用了好多办法
更改 /usr/lib/python2.7/dist-packages/rosdep2/下的三个文件sources_list.py、gbpdistro_support.py、rep3.py
中的DOWNLOAD_TIMEOUT = 15.0值,改大一点
用gedit来修改
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
参考这里
报错“<urlopen error <urlopen error [Errno 111] Connection refused>”
解决方案:
sudo gedit /etc/resolv.conf
将原有的nameserver这一行注释,并添加以下两行:
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
参考这里
还有魔改,参考这里
修改很多,记不清了,反复的运行 rosdep update,据说是网络的问题,最后更新成功
6、安装必要的包
7、启动ros
添加环境变量:
gedit ~/.bashrc
添加:
source /opt/ros/kinetic/setup.bash
source ~/.bashrc
二、搭建ROS开发环境
1、加载环境设置文件
添加环境变量:
gedit ~/.bashrc
#在其中添加
source ~/catkin_ws/devel/setup.bash
source ~/.bashrc
2、创建并初始化工作目录
新版本ROS使用名为catkin的工具来构建系统,为了使用它需要创建并初始化catkin工作目录。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
三、ROS的配置
添加环境变量:
gedit ~/.bashrc
添加如下代码:
# Set ROS Network
export ROS_HOSTNAME=xxx.xxx.xxx.xxx
export ROS_MASTER_URI=http://${ROS_HOSTNAME}:11311
# Set ROS alias command
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'
ROS_HOSTNAME=xxx.xxx.xxx.xxx 可以是本机的IP,也可以是localhost
# Set ROS Network
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
这样用户可以在一台PC上运行所有功能包。
四、运行demo
1、打开终端输入:roscore
2、再 打开一个新的终端(Termial),输入以下命令,弹出一个小乌龟窗口
rosrun turtlesim turtlesim_node
3、再打开一个终端,用键盘控制小乌龟运动:
rosrun turtlesim turtle_teleop_key
五、在TX2上安装ROS
最近重新刷了一下TX2板子,刷新之后是ubantu18.04的系统,安装ros需要melodic,有了前面的铺垫也相对容易的很多。
参考博客
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'
2、设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3、更新并安装
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
4、初始化rosdep
sudo rosdep init
这里发生了报错:
sudo: rosdep:找不到命令
解决办法:
sudo apt-get install python-rosdep
5、更新rosdep
rosdep update
这一部又开始犯timeout的老毛病,这回找到了一个新方法,特别好用,参考这里,又报错没关系,我多试了几遍很快就过了。
网站https://ghproxy.com/支持github的资源代理,非常好用,我们将用此代理加速rosdep对Github Raw的访问,进而解决rosdep update超时问题。
首先定位rosdep资源下载函数。从报错信息中得知,该函数名为download_rosdep_data,位于/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py。我们修改这一函数,添加:
url="https://ghproxy.com/"+url
用同样的方法修改/usr/lib/python2.7/dist-packages/rosdistro/init.py里面的DEFAULT_INDEX_URL
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
6、添加环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
7、安装依赖
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
8、测试:
roscore
参考:
https://blog.csdn.net/wangguchao/article/details/81044558
https://blog.csdn.net/qq_40936141/article/details/86241910
https://blog.csdn.net/weixin_44911552/article/details/115067306等