@## TOCTurtleBot3维护-1.openCR怎么更新/重刷固件
机器人小车拆下机械臂
机械臂对我们的课题没有用处,又耗电又占地方,就想给它卸掉,但是发现卸掉以后小车不能移动了,蓝牙手柄也不能驱动了,小车也不能正常启动键盘控制报错说
dev/ttyACM0
这个接口找不到,驱动不了小车,官方客服说按照下面的链接给opencr重刷固件,就可以了,经过一系列操作(下面介绍这一系列操作)现在可以用蓝牙手柄控制小车移动了,但和命令还是会报错,先不管了,后面有需要再填坑吧。现在
roslaunch turbot3_bringup minimal.launch
命令报错如下:
智能佳官方链接
TurtleBot3维护-1.openCR怎么更新/重刷固件:http://www.rosrobot.cn/?id=32
太简略了,只给了几个命令,实际操作起来还要设置很多东西的。
网页截图:
智能家在csdn上的链接
Turtlebot3新手教程:OpenCR软件设置(shell):https://blog.csdn.net/allie2013/article/details/109054592?ops_request_misc=&request_id=&biz_id=102&utm_term=openCR%E6%80%8E%E4%B9%88%E6%9B%B4%E6%96%B0/%E9%87%8D%E5%88%B7%E5%9B%BA%E4%BB%B6&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-109054592.142v86insert_down1,239v2insert_chatgpt&spm=1018.2226.3001.4187
相比与上一个链接,略微详细,但是还是缺少很多步骤,下面我会一一介绍。
网页截图:
介绍一些用到的命令
显示本机架构:sudo dpkg --print-architecture
我的是:amd64
添加新的架构:sudo dpkg --add-architecture armhf
我要添加的是armhf用于给opencr上传固件
打印添加的外部架构:sudo dpkg --print-foreign-architectures
我添加了armhf后输入该命令就会显示出来,可能也会有别的,比如:1386、armhf。
移除架构:sudo dpkg --remove-architecture xxx
这里的xxx就填你想要移除的架构名称,例如armhf。和第二条命令正好相反。
参考链接:https://www.cnblogs.com/gaohongyu/p/14137312.html
开始操作
1. 准备工作
代码
:
sudo dpkg --add-architecture armhf//添加armhf系统架构
sudo apt-get update//更新
sudo apt-get install libc6:armhf//安装
注意不要看到代码就跟着敲,往下看
我们输入第一行命令添加了armfh结构后更新是会报错的,因为源(就是安装ubuntu第一步的那个还源问题)不对,我们要先配置sources.list文件,在/etc/apt目录下。
1.1
首先对/etc/apt/source.list中每一行添加上[arch=amd64],结果类似下面这样
代码
:
deb [arch=amd64] http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb [arch=amd64] http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb [arch=amd64] http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb [arch=amd64] http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
这是更改后我的sources.list文件,我这是ubuntu20.04版本,如果你是别的版本,去找到自己版本的源再更改。
1.2
然后为添加的架构添加源文件:
sudo touch /etc/apt/sources.list.d/arm-cross-compile-sources.list
然后添加armhf的源:
sudo gedit /etc/apt/sources.list.d/arm-cross-compile-sources.list//add sources
deb [arch=armhf] http://ports.ubuntu.com/ focal main restricted
deb [arch=armhf] http://ports.ubuntu.com/ focal-updates main restricted
deb [arch=armhf] http://ports.ubuntu.com/ focal universe
deb [arch=armhf] http://ports.ubuntu.com/ focal-updates universe
deb [arch=armhf] http://ports.ubuntu.com/ focal multiverse
deb [arch=armhf] http://ports.ubuntu.com/ focal-updates multiverse
deb [arch=armhf] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse
这是更改后我的arm-cross-compile-sources.list文件,我这是ubuntu20.04版本,如果你是别的版本,去找到自己版本的源再更改。
参考链接,英文:https://askubuntu.com/questions/430705/how-to-use-apt-get-to-download-multi-arch-library
中文:https://zhuanlan.zhihu.com/p/554024254?utm_id=0
上述换源操作完成后就可以敲开头的代码:
sudo dpkg --add-architecture armhf//添加armhf系统架构
sudo apt-get update//更新
sudo apt-get install libc6:armhf//安装
这样就可以安装armhf架构了,以及这个架构下的包或者库。
2. 定义变量
我的小车是waffle pi,waffle pi和waffle一样,很据官方链接,变量声明为:
export OPENCR_PORT=/dev/ttyACM0
export OPENCR_MODEL=waffle
如果你是burger,命令改为
export OPENCR_PORT=/dev/ttyACM0
export OPENCR_MODEL=burger
3. 下载bin二进制文件并解压,下载固件及烧录
对于Kinetic(Ubuntu16.04)、Melodic(Ubuntu18.04)、Noetic(Ubuntu20.04):
wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2 && tar -xvf opencr_update.tar.bz2 && cd ./opencr_update && ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr && cd ..
这个命令我分开敲就不成功,建议你仔细看一下也直接一行完事
结果如下所示:
至此一切顺利的话此时你的机器人小车的机械臂就会断电跌落,你也可以把它拆下来了。
4. 恢复机械臂(未尝试)
机械臂刷openCR固件(Kinetic、Melodic)
export OPENCR_PORT=/dev/ttyACM0
export OPENCR_MODEL=om_with_tb3
rm -rf ./opencr_update.tar.bz2
wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2
tar -xvf opencr_update.tar.bz2
cd ./opencr_update
./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
机械臂刷openCR固件(Noetic)
export OPENCR_PORT=/dev/ttyACM0
export OPENCR_MODEL=om_with_tb3_noetic
rm -rf ./opencr_update.tar.bz2
wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2
tar -xvf opencr_update.tar.bz2
cd ./opencr_update
./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
后面的命令也可以仿照前文一次性输入
2023.4.26
尽管重刷了固件,但是还是有问题,roslaunc turbot3_bringup minimal.launch会报错,第一张图那样那样,客服说是固件不匹配,但是我重刷了好多遍没变化的啊。
有后续了会继续更新的