如何在Ubuntu20.04+ROS Noetic环境下安装使用arbotix_gui并解决启动报错
问题根因
官方arbotix_ros包长期未更新适配高版本wxPython,ROS Noetic默认搭配的Python3.8+与wxPython4.0+版本废弃了旧版API,导致调用时参数不匹配触发断言错误,同时存在浮点坐标、旧类调用的兼容性问题。
修复步骤
- 先卸载apt安装的官方包,避免版本冲突
sudo apt remove ros-noetic-arbotix
- 找到你之前克隆到ROS工作空间src目录下的arbotix_ros源码即可,无需重新拉取。
- 打开路径为
arbotix_ros/arbotix_gui/nodes/arbotix_gui的源码文件,修改以下几处内容:
- 替换旧版App类:将第203行的
app = wx.PySimpleApp()修改为app = wx.App(),解决PySimpleApp废弃警告 - 修复浮点坐标报错:将第73、74行的
width/2修改为int(width/2),显式转换为整数适配wx组件坐标要求 - 替换事件绑定API:将第125、126行的旧版事件绑定代码
wx.EVT_CLOSE(self, self.onClose) wx.EVT_TIMER(self, self.TIMER_ID, self.onTimer)
替换为新版Bind写法:
self.Bind(wx.EVT_CLOSE, self.onClose) self.Bind(wx.EVT_TIMER, self.onTimer, id=self.TIMER_ID)
- 回到ROS工作空间根目录,编译源码并刷新环境
catkin_make source devel/setup.bash
- 执行
arbotix_gui即可正常启动,确认虚拟机ROS_MASTER_URI配置正确即可控制树莓派端的机器人。
内容的提问来源于stack exchange,提问作者TechMarvel
相关产品推荐
相关产品推荐

