ROS系统安装和树莓派小车操作流程(内附排雷指南)--4

这次的主要是openCR板子的配置,IP地址的配置

这次也会让咱的小车动起来

OpenCR依赖库的添加十分繁琐,所以有条件的小伙伴可以科学上网解决问题,如果没有靠谱的梯子,这里也有解决方法。

export OPENCR_PORT=/dev/ttyACM0

export OPENCR_MODEL=waffle (如果你的不是华夫,则把waffle改为burger)

rm -rf ./opencr_update.tar.bz2

wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/o pencr_update.tar.bz2 && tar -xvf opencr_update.tar.bz2 && cd ./opencr_update && ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr && cd …

(这一句非常复杂,没错,这是一句话,别cv错了)

如果你是科学上网的,恭喜你,opencr已经配置完成了,如果不是,则参考下面很多方法(我试过没用不代表你用起来也没用,所以建议都试试。

1.把https改为http,我试过没用

2.把https改为git,我试过没用

3.通过arduino软件(这一步建议在Ubuntu系统操作,win10下面少了一个驱动)

(1) 下载arduino ide,版本越新越好,我有个同学就是直接下了个最新的,然后咻一下下到了opencr依赖库,虽然不排除是运气问题,但是还是版本越新越好

(2) 运行 IDE,点击 File(文件) → Preferences(首选项), 复制如下内容到Additional Boards Manager URLs()

https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/pac kage_opencr_index.json

(3) 通过 Boards Manager 安装 OpenCR 软件包 点击 Tools → Board → Boards Manager.

(4) 弹出窗口后,在文本框中键入 OpenCR 以查找包

当你做完,你有可能找到了Opencr库,当然不一定,如果还是找不到,说明你的网络真的没办法从这个地址下载到任何东西,这个时候,我们转变思路,把在线的东西先通过浏览器下载,然后在使用工具把本地文件转变为在线文件,方法如下

1.复制网址到浏览器打开

https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/pac kage_opencr_index.json

(这个是上面输入arduino的链接)

2.浏览器出现了一大堆代码,这是这个json文件的内容,这个时候把网页内容复制,然后新建文本,粘贴内容,并且命名为.json文件

3.在上述json文件中,有一个网址,这是在那堆代码里的,很好找,把这个网址复制下来,用浏览器打开,浏览器会下载一个bz2后缀的文件,保存(最好json文件和这个文件保存在一起,方便后续操作,最好路径没有中文)

4.下载hfs软件(这东西就叫hfs,是一个为本地文件提供虚拟链接的工具)

5.安装并打开,有很大概率你看不到这个软件,因为它藏起来了,在状态栏里可以找到它,双击唤醒,把上面两个文件拖到软件的左侧,在右侧会有两个文件的虚拟链接,这个时候重复

运行 IDE,点击 File(文件) → Preferences(首选项), 复制这两个链接,注意链接直接用回车分开到【Additional Boards Manager URLs()

点击 Tools → Board → Boards Manager.

在文本框中键入 OpenCR 以查找包

这个时候就能看到opencr了,如果还是看不见,就直接把别人配置好opencr的整个arduino文件夹给搬过来,也不是不行


至此,恭喜你已经配好了opencr依赖库,接下来是烧录


同样我们使用arduino ide,为opencr接上数据线,记住是opencr不是树莓派,我当时就接错了,白忙活半天

具体步骤

打开arduino,选择 Tools(工具) → DFU-UTIL,Tools → Board→选中opencr, Tools → Port → /dev/ttyACM0

(如果没有进入DFU都找不到端口,就是驱动有问题,可以百度一下)

运行 DFU 模式 OpenCR 上:按下【Reset 键】同时按下【Boot 键】,就能激活 DFU 模式,进入DFU模式后,在arduino的端口一项可能会出现端口连接丢失的情况,问题不大,接着做就行了

下载 bootloader Arduino IDE 中:点击 Tools → Burn Bootloader。在这一步,如果在win10下操作可能会提示无dfu驱动,我也不知道会不会出现问题,所以建议在ubuntu下操作。如果Ubuntu系统也提示没有驱动,就执行

echo 'deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main'

sudo apt-key adv --keyserver keys.gnupg.net --recv-key 6F3EFCDE

sudo apt-get update

sudo apt-get install dfu*


Arduino IDE 中:点击 Tools → Burn Bootloader。

必须要看到 file download successfully 才证明固件烧写成功

将 TurtleBot3 的程序烧录到 OpenCR 中:

如果 TurtleBot3 Burger, Arduino-->File → Examples → turtlebot3 → turtlebot3_burger → turtlebot3_core.

如果使用的是 TurtleBot3 Waffle 或者 Waffle Pi, Arduino--> File → Examples → turtlebot3 → turtlebot3_waffle → turtlebot3_core.

点击【上传】上传到 OpenCR 板。

烧写 arduino 程序时,必须要看到下面状态栏 输出“jump_to_fw”字样,才能 确定程序少写完成。 

至此,完成程序烧写操作,这个时候如果烧写成功,轮子会抱死,用遥控器遥控,车子会动

最后是IP地址的配置

这一步非常简单,但是如果是用手机热点等提供网络的话,需要每一次操作前查看IP地址是否发生变化(为了安全,建议每一次操作前都看一看,我当初吃过不少亏)

分别在 turtlebot 和 PC,执行如下命令获得对应的 IP 地址:

ifconfig

修改.bashrc:

gedit ~/.bashrc

在最下面添加 turtlebot3 的 IP 地址: (树莓派端)

ROS_MASTER_URI = http://【PC 的 IP 地址】:11311

ROS_HOSTNAME = 【树莓派的 IP】

PC 配置如下:

ROS_MASTER_URI = http://【PC 的 IP 地址】:11311

ROS_HOSTNAME = 【PC 的 IP】

修改完成,记得让环境生效,在两端都执行

source ~/.bashrc

接着检查是否配置到位,在PC端运行

roscore

保持窗口

在树莓派执行

rostopic list

如果配置成功,可以看到节点,如果出现无法

ERROR:Unable to communicate with master

表示连接出问题,在保证自己的IP没输错后,基本是防火墙的问题

查看防火墙状态

sudo ufw status

inactive状态是防火墙关闭状态 active是开启状态 ,如果是active,则关闭

sudo ufw disable

重新执行

rostopic list

正常来说可以看到节点,如果还是不行,就是自己的路由器或者板子出了问题,没办法了

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值