松灵机器人SCOUT的ROS代码架构

++++++++++++++++++++++++++++++++++++ 松灵机器人感觉可能还是比较小众吧。明明官方的github,但是star之类的完全没有关注度,也没有issue。这个SCOUT_ROS主要是解决SCOUT底盘与上位机的通信方式,截止目前,已经开放了RS232和CAN两种通信方式。而且CSDN上只有寥寥几篇的相关博客,参考价值不高。故整理此篇,以供后日快速上手。
代码地址:https://github.com/westonrobot/scout_ros

接下来是正文。

整体架构

框架图
这是docs里自带的框架图。
显然,SCOUT_ROS分成了两个路线:
第一条路线是与实际机器人的通讯,这一部分走的是串口UART或CAN的协议,需要经过scout_sdk将数据包解析成人类可以理解的语言,传到scout_base。而scout_base接收到后,会向外界(其他的ROS结点)发布信息。当然,路线反过来也是可行的,即scout_base订阅了来自其余节点的控制命令,可以将人的命令转换为符合相应协议的数据包传到底盘,控制底盘的行动。
第二条路线是利用Webots进行仿真。仿真的机器人由于不是走实际的协议的,因此只要通过scout_wetbots_sim监听twist类型的话题,就可以控制仿真机器人的线速度和角速度。程序对速度进行积分后,得到里程信息,并向外发布。而这里的twist话题是通过一个python脚本来发布的,即定义键盘按键的意义,按下后会改变命令帧,然后以一定的频率发送这个命令。

其实说到这里,基本上这篇也可以结束掉了。下面部分主要是稍微记录下读代码时候的一些发现吧。

代码细节

从我的理解来看,目前scout_ros的代码里其实有很大一部分是闲置在那里,即没有真正投入使用的。从使用角度来讲,现在计算机一般也不缺那点硬盘空间,因此全编译了也可以。
但毕竟看都已经看了,就稍微罗列一下,万一以后要代码删减也找的到。

可视化

在scout_base/urdf里已经给出了scout的urdf文件,这个文件是一个通用的模型文件,因此也可以在rviz里使用,后续自己开发可视化界面,就不用自己做美工的活了。 可能还是需要自己做调整的,因为urdf似乎内容很少,与仿真中看到的并不一致。

IMU

scout_base/src里有一个imu_broadcast_node.cpp,顾名思义,是一个接收imu信息,并发布成ros msgs的一个节点。里面使用了lcm,我百度了下是一种适用于局域网的通信模式。具体的我也没看。这一块内容,在Scout里是没有用到的,编译的时候也没有编译进去。可以删去。

scout_sdk

这一部分主要是对接的scout底盘的sdk,即如前文所述的,充当人类语言与数据包之间的双向转换器。
scout_sdk/src包括async_io,scout_protocol,scout_base.cpp,其中async_io没有用到,似乎是用来同步的信息的。scout_protocol里面是decode和encode的底层代码。
scout_base.cpp是主要的对接sdk代码。

scout_ros

这个文件夹与package是同名的,里面没有任何代码,只有readme,CMakeLists.txt和package.xml。值得注意的是,这是用了catkin_metapackage()机制的。
我的理解是,ros里package是编译的最低单位,而一个项目可能需要多个包。比如SLAM可能就有Mapping和Location两个独立的包。此时,若使用metapackage机制,则所有下面的package都算到了这个包的下面,可以一起编译。
可以参考:https://blog.csdn.net/yaked/article/details/50083783?locationNum=3

scout_base

这里面就是主要的ros节点了,主要是用于发布odom和scout状态,同时也接收来自/cmd_vel和/scout_light_control。

scout_bringup

主要包括了launch和初始化can口的bash脚本。
初次设置时候调用一下setxxx.bash,每次上电的时候再调用一下 bringxxxxx.bash。不过,使用的时候必须连接好can转usb,否则会提示查不到can设备。

scout_msgs

由于SCOUT的数据信息是自己定义的,即ROS的通用信息用不了,因此需要重新写msg文件,存在scout_msgs文件夹里。其实很简单,就是输入输出的类型和变量名。比如

float64 current
float64 rpm
float64 temperature

scout_messenger.cpp

与上面那个要区分开,这个messenger是在scout_base下面的,里面主要实现了信息的接收与分发,被scout_base所调用。

sdk

在scout_sdk/docs有一个gif图非常有意思:
在这里插入图片描述
可以实时的显示车的状态。这个监测器的代码见松灵的sdk仓库:https://github.com/westonrobot/wrp_sdk

  • 9
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: scout5.3是一款用于代码审查和静态分析的工具,它能够帮助开发团队找出潜在的问题和错误。 以下是scout5.3的安装教程: 1. 首先,你需要下载scout5.3的安装包。你可以在scout的官方网站或其他可靠的软件下载网站上找到最新版本的安装包。确保选择与你的操作系兼容的版本。 2. 下载完成后,双击安装包文件,开始安装过程。在安装向导中,你可以选择安装路径和其他可选设置。根据你的需要进行选择,然后点击“下一步”继续。 3. 在安装过程中,你可能需要选择一些附加组件或者设置。请根据个人需求进行选择。如果不确定,可以使用默认设置。 4. 安装过程可能需要一些时间,耐心等待完成。一旦安装完成,你将会看到安装成功的提示。 5. 点击“完成”退出安装向导。 6. 现在,你可以在开始菜单或桌面上找到scout的启动图标。双击启动图标,打开scout。 7. 第一次启动scout时,你可能需要输入许可证信息或设置一些基本配置。根据提示操作,然后点击“确定”或“下一步”完成设置。 8. 现在,你可以开始使用scout进行代码审查和静态分析了。导入你的代码项目,设置审查规则,然后运行检查。scout将会帮助你找出潜在的问题和错误,并提供修复建议。 以上是scout5.3的安装教程。希望对你有所帮助! ### 回答2: Scout 5.3 是一个功能强大的开源监控工具,适用于大规模的分布式系。下面是 Scout 5.3 的安装教程: 1. 首先,确保你的系满足 Scout 5.3 的要求。Scout 5.3 需要至少2GB的RAM,并且需要运行在支持Ruby 2.4或更高版本的系上。 2. 下载 Scout 5.3 的安装包。你可以从官方网站或者 GitHub 上的发布页面下载最新的安装包。 3. 解压安装包到你的系中的一个目录。你可以选择任意的目录,但是建议选择一个非常规的目录,以避免潜在的冲突。 4. 在解压后的目录中,运行以下命令来安装 Scout 5.3 的依赖项: ``` $ bundle install ``` 这将会自动安装所需的Gem包和其他依赖项。 5. 安装完成后,运行以下命令来配置 Scout 5.3: ``` $ bundle exec scout configure ``` 这将会引导你完成 Scout 5.3 的配置过程。你需要提供一些必要的信息,如登录凭据、监控选项等。 6. 配置完成后,运行以下命令来启动 Scout 5.3: ``` $ bundle exec scout start ``` Scout 5.3 将会启动,并开始监控你的系。你可以访问 `http://localhost:4021` 来查看监控数据和报告。 以上就是 Scout 5.3 的安装教程。安装完成后,你可以根据你的需求来配置和使用 Scout 5.3,它将帮助你监控和管理你的分布式系。 ### 回答3: Scout 5.3 是一个用于监测和诊断 PHP 代码性能的工具。下面是 Scout 5.3 的安装教程: 1. 安装 Composer:Scout 5.3 是通过 Composer 进行安装的,所以首先需要确保你的系上已安装了 Composer。你可以在 Composer 的官方网站上找到安装指南,并按照指引进行安装。 2. 在项目中添加 Scout 5.3:打开你的 PHP 项目所在的目录,并打开终端或命令提示符。输入以下命令,将 Scout 5.3 添加到你的项目中: ``` composer require scoutapp/scout-apm ``` 3. 获取 Scout 5.3 的密钥:在终端或命令提示符中输入以下命令,获取 Scout 5.3 的密钥: ``` php artisan scout:generate-key ``` 4. 配置 Scout 5.3:在项目的 `.env` 文件中,设置以下环境变量: ``` SCOUT_KEY=YOUR_SCOUT_KEY ``` 5. 启用 Scout 5.3:在你的项目代码中,找到你希望监测性能的代码段,添加以下代码,以启用 Scout 5.3: ```php if (env('APP_ENV') === 'production') { ScoutApm\Agent::start(); } ``` 6. 运行项目:现在你可以运行你的 PHP 项目,并开始监测和诊断它的性能了。Scout 5.3 会记录性能数据,并将其发送到 Scout APM 服务器进行分析。 希望以上教程能够帮助你顺利安装和使用 Scout 5.3。祝你的 PHP 项目性能优秀!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值