安装步骤
添加apt源
创建文件/etc/apt/sources.list.d/ros-latest.list,并写入内容(我这里选择的是中科大的源)
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
然后更新源
sudo apt update
应该会出现报错
W: GPG 错误:http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
复制NO_PUBKEY后面的一串字符,然后运行下面的命令(把代码里面的F42ED6FBAB17C654
换成你那边出现的字符)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
之后就能开始安装ROS了
sudo apt install ros-melodic-desktop
注意:不推荐安装ros-melodic-desktop-full,因为Jetson Nano可能带不动
ROS初始化
sudo rosdep init
sudo rosdep update
可能出现的问题
① sudo: rosdep: command not found
原因是python-rosdep没安装,手动安装一下就行
sudo apt install python-rosdep
② ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down.
原因是github在国内访问不太稳定
解决方案一:手动创建相应的文件(不推荐)
sudo mkdir -p /usr/local/etc/ros/rosdep/sources.list.d
sudo cd /usr/local/etc/ros/rosdep/sources.list.d
sudo vim 20-default.list
然后在创建的文件内写入下面的内容
# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
再执行sudo rosdep init
如果还是报错的话请用用下面的方法安装
解决方案二:使用proxychains-ng代理
首先在本地电脑上装上支持局域网连接的科学上网工具(比如V2RayN,相信能看到这篇博客的人大概率都已经装上了),并在设置中打开“允许来自局域网的连接”。然后下载上面的项目,然后把zip文件上传到jetson nano上(我这里是放到用户目录里面的),依次执行下面的命令
# 解压压缩包并修改文件夹名
unzip proxychains-ng-master.zip
rm proxychains-ng-master.zip
mv proxychains-ng-master proxychains
cd proxychains
# 编译安装
sudo apt install gcc
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
sudo make install-config
# 打开配置文件
sudo vim /etc/proxychains.conf
在打开的文件中往下翻,找到最后一行socks4 127.0.0.1 9050
,修改成相应的代理配置
例如,V2Ray软件上右下角显示,则配置文件中修改成(电脑的ip地址是局域网地址,不要傻乎乎地写127.0.0.1)
http [电脑的ip地址] 1082
保存文件,然后执行
sudo proxychains4 rosdep init
sudo proxychains4 rosdep update
设置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
修改一下.ros文件夹的权限(这里是为了避免运行ros时出现权限问题)
sudo chown [用户名] ~/.ros -R
运行测试
首先安装turtlesim功能包
sudo apt install ros-melodic-turtlesim
然后打开三个Terminal视窗(注意不是SSH命令窗口,这里需要用VNC或者Jetson Nano连接显示器)
a. 第一个窗口创建ROS Master 节点,输入
roscore
b. 第二个窗口开启turtlesim的模拟小乌龟节点node,输入
rosrun turtlesim turtlesim_node
c. 第三个窗口开启turtlesim的键盘控制节点,输入
rosrun turtlesim turtle_teleop_key
最终效果如图,按键盘方向键就能控制乌龟的走向