ROS集成开发环境IDE----RoboWare开源

article/2025/10/3 22:28:03

RoboWare中文官网: http://cn.roboware.me/#/home

github: https://github.com/TonyRobotics/RoboWare-Studio

目前主要有三款软件产品:Designer+Studio+Viewer,如下


.


.


.

----

RoboWare Studio - Open Source

RoboWare Studio is an IDE environment for ROS development.It makes the ROS development visual, simple and manageable.It provides ROS workspace management, code editing, building and debugging.It is an IDE, but it will not be an IDE only!

Development

Please refer to the Development Guide or 开发指南 for details.

License

Copyright (c) Jinan Tony Robotics Co., Ltd. All rights reserved.

Licensed under the BSD License.


----

RoboWare Studio 开发指南开发者可参照本文档进行所需功能的开发。RoboWare Studio 基于 Visual Studio Code 的源代码进行二次开发,最新版本是 RoboWare Studio 1.2.0 基于 vscode 1.15.1。由于 RoboWare Studio 与 ROS 功能紧密结合,所以它只有 Linux deb 版本的,只能在 ubuntu 14.04 或更高版本的系统上进行开发,也只能在装有 ROS 的 ubuntu 系统上运行。RoboWare Studio 建议的开发环境:
系统环境:Ubuntu Linux Desktop v14.04 64bit,或更高版本
ROS环境:ROS 1,indigo,或更高版本
集成开发环境:vscode
nodejs:v7.4.0,或更高版本
electron:v1.6.6,或更高版本RoboWare Studio 在 vscode 的基础上已增加了哪些功能?1、检查打开目录的结构,保证打开的目录是一个合法的 ROS workspace,而普通的目录不予打开。
2、修改“new workspace”功能,使之在创建目录完成以后调用 ROS 的 catkin_init_workspace 命令初始化工作区。
3、分析打开的 ROS workspace 目录结构,在 explorer 的右键上下文菜单中对不同的目录和文件显示不同的功能,并一一实现新增的功能。
4、在 explorer 面板顶端增加任务选择列表,作为编译和部署选项。
5、在 explorer 面板底部增加 ROS 节点列表,用于显示编译出的 C++ ROS 节点文件。
6、在左侧新增一个 ROS 面板,用于显示一些 ROS 环境的信息,包括:Active Topic,Active Nodes,Active Services,Installed Packages,Installed Messages,Installed Services 六个列表。
7、在左侧新增一个 ROS Packages Manager 面板,用于管理 ROS 的官方软件包。
8、Edit 菜单增加 vim 编辑模式的切换菜单项。
9、增加 ROS 菜单,内有一些调用 ROS 命令的菜单项。
10、ROS message、service、action 文件的语法提示。
11、集成了 python 语法服务和调试插件、C++ 语法服务、CMake 语法提示、vim 编辑模式、C++ 调试器及远程调试插件。对 vscode 的源代码做了哪些修改?功能1:检查打开的目录结构
参考位置:/src/vs/code/electron-main/windows.ts:498
代码说明:检查要打开的路径是否是一个合法的 ROS workspace,检查的依据就是目录中应包含 /src/CMakeLists.txt 符号链接。如果不包含这个符号链接就会弹出提示框,终止打开路径。接下来在目录中检查是否存在 .vscode 目录,如果没有则会创建,并且将所有必要的预配置文件都写入目录中。功能2:创建新的 ROS workspace
参考位置:/src/vs/workbench/parts/files/browser/fileActions.ts:2094
代码说明:调用 service 的功能:/src/vs/workbench/services/ros/electron-browser/rosService.ts:26。打开文件对话框,创建目录,调用 ROS 命令初始化新的 ROS workspace,最后打开这个目录,切换到新的目录中。功能3:分析 ROS workspace 的目录结构,在不同层级和文件类型上加入不同的上下文菜单
参考位置:/src/vs/workbench/parts/files/browser/fileActions.contribution.ts:63
代码说明:在 stat 常量中可以获取到 explorer 树形控件中选中项的所有属性,stat.name 是目录项名,stat.isDirectory 指示是否是目录,stat.hasChild() 检查是否包含子目录项。用这些属性可以判断出不同文件的不同分支,在对应的分支中把对应的 Action 实例放入 actions 数组,即可为不同文件插入不同的菜单项。
目前实现的 explorer 上下文菜单功能非常多,这些功能都在 /src/vs/workbench/parts/files/browser/fileActions.ts 中实现,以下是插入到右键菜单中的 Action 类名:
AddRosPkgAction, ActivateRosPkgAction, DisactivateRosPkgAction, ActivateAllRosPkgAction, AddIncludeFolderAction, AddSrcFolderAction, AddMsgFolderAction, AddSrvFolderAction, AddActionFolderAction, AddLaunchFolderAction, AddCfgFolderAction, AddCppNodeAction, AddPythonNodeAction, AddCppClassAction, EditRosPkgDepAction, AddHeaderFileAction, AddCppFileAction, AddPyFileAction, AddMsgFileAction, AddSrvFileAction, AddActionFileAction, AddLaunchFileAction, AddCfgFileAction, RunLaunchFileAction, RunRemoteLaunchFileAction, PlayBagFileAction, LoopPlayBagFileAction功能4:explorer 标题栏上的任务选择列表
参考位置:/src/vs/workbench/parts/files/browser/explorerViewlet.ts:97
代码说明:在 explorer 的标题栏上增加了4个控件,方便快速地进行部署和编译,它们对应的 action 类:运行任务按钮:RunBuildTaskAction,任务列表:RunTaskActionItem,配置任务按钮:ConfigureTaskAction,配置远程任务参数按钮:ConfigureRemoteTaskAction。功能5:explorer 面板底部的 ROS 节点列表
参考位置:/src/vs/workbench/parts/files/browser/views/rosNodeView.ts
代码说明:ROS 节点列表的 view 类(RosNodeView)实际上是一个 ExplorerView 类的精简版,只用于查看编译出来的 C++ ROS 节点文件。类里重新实现了 FileRenderer 用于显示 ROS 节点的图标,重新实现了 FileFilter 用于过滤编译出来的无关文件,另外重新实现的还有 FileController, ActionProvider, FileAccessibilityProvider 都在 /src/vs/workbench/parts/files/browser/views/rosNodeViewer.ts 中。
重新实现的 RosNodeView 类在此处被调用 /src/vs/workbench/parts/files/browser/explorerViewlet.ts:49。显示在 explorerView 控件的下方。功能6:ROS 环境信息面板
参考位置:/src/vs/workbench/parts/ros/browser/rosViewlet.ts
代码说明:RosViewlet 是 ROS 环境信息面板的 Viewlet 类,其中包含了6个类似的 View 对象(rosTopicView, rosNodeView, rosServiceView, rosPackView, rosMsgView, rosSrvView),用于显示不同的列表。这6个对象的共同基类 RosListView 在这里实现 /src/vs/workbench/parts/ros/browser/views/rosListView.ts。其功能是获取指定的 ROS 命令的执行结果,并且把结果用列表展示出来。功能7:ROS Packages Manager 面板
参考位置:/src/vs/rw/rpm/browser/viewlet.ts
代码说明:该模块从系统目录中获取已安装的 ROS 官方包,显示在列表中。未安装的包可执行"sudo apt-get install xxx"命令进行安装,已安装的包可执行"sudo apt-get remove xxx"命令进行卸载。功能8:切换 vim 编辑模式
参考位置:/src/vs/workbench/parts/extensions/browser/extensionsActions.ts:1296
代码说明:RoboWare Studio 采用了"vscodevim.vim" extension 实现了 vim 编辑模式,加载这个扩展即可打开 vim 模式,ToggleVimAction 类只是实现了是否加载"vscodevim.vim"的即时切换,当然,切换以后还需要重新加载整个窗口。功能9:ROS 功能菜单
参考位置:/src/vs/code/electron-main/menus.ts:884
代码说明:ROS 有一些专用的工具,都可以用菜单打开,添加菜单的方法可依照 vscode 的代码。而 ROS 菜单功能的实现大部分都实现在 /src/vs/workbench/parts/ros/browser/rosActions.ts 中。包括一些调用 ROS 命令的功能,和打开 ROS 相关配置文件的功能。功能10:ROS 文件语法高亮
参考位置:/extensions/ros
代码说明:RoboWare Studio 实现了一些简单的 ROS message、service、action 文件语法高亮,实现的方法就是采用了 vscode 的语言扩展功能。在 /extensions/ros 目录中的就是该扩展的语法配置文件,详情请参考 vscode 的官方文档。功能11:集成第三方扩展
参考位置:/extensions
代码说明:RoboWare Studio 去除了一些 vscode 中集成的扩展,也增加了一些第三方扩展,这些扩展都存放在 /extensions 目录中。内容包括:
python 语法及调试扩展:donjayamanne.python-0.6.9
C++ 语法自动完成扩展:RichardHe.you-complete-me-1.0.36
CMake 语法高亮扩展:twxs.cmake-0.0.17
vim 编辑模式扩展:vscodevim.vim-0.9.0
gdb 调试器支持扩展:webfreak.debug-0.21.2
C++ 代码格式化扩展:xaver.clang-format-1.5.0
注意:在代码中修复了 webfreak.debug 扩展中的一个问题,参考:/extensions/webfreak.debug-0.21.2/out/src/backend/mi2/mi2.js:154,在此增加了关键的一行,这样可以保证在远程调试时是用登录模式执行 gdb 命令,如果不加入这一行将无法在远程主机上获取到 ROS 环境变量。另外 RoboWare Studio 对 vscode 做了一些针对 ROS 开发者使用习惯上的修改,在此不进行详细描述。开发者可以对比与 vscode 代码的不同之处。济南汤尼机器人科技有限公司

----

具体信息查阅官网最新文档。

----

或者更具体地说:我们所有在ROS Answers上发帖的人都需要你的帮助。

为什么

不计算重复项和易于回答的重复项(“您是否收集setup.bash?”,“不,pkg X未发布到ROS版本Y中”),我每周都很容易在ROS Answers上看到100个新问题。

虽然很多都是关于安装,部署或集成的问题,但是使得ROS Answers真的值得花时间的是那些询问关于配置特定软件包的建议的人。如何调整ros_control基于驱动fi 的PID robot_localization在地下洞穴中选择哪些传感器,或者是否可以通过6D无人机实际使用2D导航堆栈,“ 如果我只在一架飞机上飞行 ”。

来自社区的大量志愿者通过回答相当多的这些问题来帮助他们,或者至少试图帮助他们接近解决方案 - 他们应该得到很多的认可和感谢。然而,我注意到了我在ROS Answers社区中称为主题专家的交互次数有所下降:在特定功能方面拥有丰富经验的用户,如映射,本地化,运动规划,应用程序设计,人机器人交互,行为建模,系统架构,大容量数据流处理,多机器人系统等。

正是这些互动使得ROS Answers成为无价的资源,如果我们失去了这一点,那将是不幸的。

因此,这篇文章是一个行动呼吁(或者甚至是一个参与呼吁):如果您有一个或多个软件包的使用经验,并且您认为您可以帮助一位可能刚刚起步的ROS用户,请花15分钟结束或开始您的一天,检查是否有任何问题可以为您做出贡献。

即使是一个简短的评论指出海报的正确方向,也有可能节省一些小时的调试或搜索。不要低估你可以帮助某人,即使你觉得自己不是“ROS专家”(无论这可能意味着什么)。

如果你刚开始自己​​,你可以考虑使用ROS Answers来熟悉ROS:选择一个问题并试图弄清楚答案可能是什么。我以这种方式了解了很多有关ROS的有趣事情,这些我都不知道。


----


http://chatgpt.dhexx.cn/article/ZjNNZV9R.shtml

相关文章

Roboware Studio下载、安装、及解决办法

RoboWare官网:http://www.roboware.me/#/home 如果没有VPN我这里有资料链接: https://pan.baidu.com/s/17q5U1HlGGL0inqcxLuELmw 提取码: upav 选择合适的版本下载,注意32位与64位之分。下载完以后先不要着急安装,为了更好地使用RoboWare St…

Robotium

本文内容:基于Android Studio 的Android自动化测试框架Robotium的开发 版权声明:本文为原创文章,未经允许不得转载 博客地址:http://blog.csdn.net/kevindgk 简介 RobotiumRobotium Recorder 一白盒测试 创建Android项目安装Rob…

ROS笔记(4) RoboWare Studio 的安装

ROS笔记(4) RoboWare Studio 的安装 1. RoboWare Studio的下载2. RoboWare Studio的安装3. RoboWare Studio的开启4.打开工作区1. RoboWare Studio的下载 RoboWare Studio是ROS的一款IDE,基于微软开源的VSCode开发,功能比较强大,使得开发更加快速、简单,是目前较好用的R…

RoboWare Studio入门教程(一)

部分参考:https://blog.csdn.net/qq_41450811/article/details/80305846 应该从ROS的通信机制开始说起,话题通信机制和服务通信机制,还有一种参数管理机制本次不予展开。 本次先以服务通信机制为例子。 服务(Service&#xff0…

RoboWare安装教程

RoboWare Studio安装教程 通常ROS的程序都是用C和Python开发的,为了提高开发的效率,我们建议用IDE来写代码。目前在Ubuntu上已经有许多IDE支持ROS开发,比如Eclipse、Qt Creator。不过这些IDE配置起来会比较麻烦,推荐一款适配ROS的…

ROS IDE - RoboWare Studio 安装与使用教程

1. 安装: 去官网 http://www.roboware.me/#/ 下载安装包后正常安装即可。 2. 配置: 安装后会提示git不是最新版本,依次执行下面的命令可更新至最新版: git --version sudo add-apt-repository ppa:git-core/ppa sudo apt-get u…

ROS IDE —— RoboWare Studio

RoboWare Studio是ROS的一款IDE,但是它的功能又比较强大,使得开发更加快速、简单。 要安装RoboWare Studio,首先确保你的Ubuntu版本是14.04或者16.04版本,目前只支持这两个版本,并且完成了ROS的安装和配置&#xff0c…

RoboWare Studio的安装

RoboWare是什么? RoboWare Studio是国人开发的一个ROS系统IDE(集成开发环境),基于微软开源的VSCode内核开发(因此这个界面跟VSCode非常像),功能比较强大,使得开发更加快…

RoboWare Studio安装教程

RoboWare官网:http://www.roboware.me/#/home 选择合适的版本下载,注意32位与64位之分。下载完以后先不要着急安装,为了更好地使用RoboWare Studio,我们需要事先安装两个比较常用的插件。 1、为了支持Python调试功能,…

Roboware Studio教程 (ROS kinetic)

RoboWare Studio是一个ROS集成开发环境。它使 ROS开发更加直观、简单、并且易于操作。可进行ROS工作区及包的管理、代码编辑、构建及调试。 下载链接:https://pan.baidu.com/s/1D169dFyf2OD3SFBZVZy3pQ 密码:3iuk 准备 安装前,请查看系统…

roboware的使用

安装 roboware相当于一个专门适配ROS的vscode,功能性十分强大,几乎所有与ROS相关的操作都可以在IDE中完成。目前官网已经挂掉,可以选择百度云安装: https://pan.baidu.com/s/1D169dFyf2OD3SFBZVZy3pQ 密码:3iuk 或者去…

RoboWare Studio 安装教程与可能问题解决

一、下载RoboWare源码 途径1:官方GitHub连接:https://github.com/TonyRobotics/RoboWare 途径2:RoboWare官网:http://www.roboware.me/#/home (我选择了途径1) 下载完后解压,我们可以看到文…

round() 函数

查看更多 https://www.yuque.com/docs/share/50c54ca6-17b5-4a09-959b-d8be30a16520

RowBounds 的使用

generator 添加 查询的写法 offset偏移量 size 每页的大小

row_number() over (partition by order by desc)用法

转自https://www.cnblogs.com/linJie1930906722/p/6036053.html 分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录) partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多…

row_number 语法

ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以便于进行编…

row_number()函数

语法格式:row_number() over(partition by 分组列 order by 排序列 desc) SELECTROW_NUMBER() OVER(PARTITION BY sh.BUSMAIINFID ORDER BY nvl(sh.TIMESTAMP, sh.CREATEDATE) DESC)AS RN,sh.ORGID,sh.BUSMAIINFID,sh.TIMESTAMP,sh.CREATEDATE FROMREG_NETREGINFOA…

MyBatis中的RowBounds

如何分页查询 Mybatis如何分页查询?Mysql中可以使用limit语句,但limit并不是标准SQL中的,如果是其它的数据库,则需要使用其它语句。MyBatis提供了RowBounds类,用于实现分页查询。RowBounds中有两个数字,off…

row_number() over(partition by)整理

row_number() over(partition by),作为oracle常用的分析函数,身为数据开发时必须要掌握的。不过一段时间不用,难免会有些忘记,今天整理一下一些场景下的用法。 现有表(test_rownumber)有如下数据&#xff…

Mybatis分页之RowBounds

Mybatis可以使用RowBounds进行分页 dao层 sql的xml文件,因为是java层面的分页,所以sql不需要分页 单元测试 因为参数是第几个开始,这样很不友好,我们一般情况分页是第几页开始,页大小是多少,所以这就需要我…