Clion ROS开发环境设置技巧
在源环境中启动CLion
需要告知CLionROS特定的环境变量。通过运行来源工作空间时,将在当前shell中检索这些变量
source./devel/setup.bash
为CLion提供ROS环境变量的最简单方法是从同一个shell启动IDE。在获取工作空间后,您可以键入同一终端:
在CLion中打开一个ROS项目
在源环境中启动CLion后,执行以下操作之一以打开ROS项目:
- 单击文件|打开并选择ROS工作区的src目录中的CMakeLists.txt,然后选择OpenasProject。
- 单击文件|来自Sources的新CMake项目,并选择工作区的src目录以从中导入项目。
该CMake的工具窗口会显示该项目加载的状态:
设置catkin工作空间的构建路径
默认情况下,CLion将构建输出放在自动创建的cmake-build-debug或cmake-build-release目录中。对于ROS开发,这意味着您将在CLion和运行的控制台中拥有两个不同的版本catkin_make。
要在IDE和控制台上进行单一构建,需要将CLion构建路径设置为catkin工作区目录。为此,请转到文件|设置Ctrl+Alt+S|构建,执行,部署|CMake并更改两个字段:
- 在生成路径中,设置workspace_folder/build。
- 在CMake选项中,添加-DCATKIN_DEVEL_PREFIX:PATH=workspace_folder/devel。
使用启动文件
您可以在CLion中将ROS节点作为常规应用程序运行和调试。
启动文件无法直接执行,但您可以使用XML语法突出显示和完成编辑它们,并将调试器附加到正在运行的节点。
将调试器附加到正在运行的节点
1、从命令行运行.launch文件。例如
您可以通过该rosnodelist命令检查当前运行的节点列表。在我们的示例中,列表将包含talker和listener:
2、呼叫运行|从主菜单附加到处理或按Ctrl+Alt+F5。
3、通过其PID或名称连接到所需节点:
示例:创建基本ROS节点,在CLion中编辑并运行它
在这个例子中,我们将创建一个简单的ROS包,编辑源代码,并从CLion运行节点。我们将在Ubuntu18.04上使用ROSMelodic,并在ROSwiki上使用编写简单发布者和订阅者(C++)教程的基本发布者节点。
创建一个基本的ROS包
创建和构建ROS工作区:
mkdir-pros_workspace/srccdros_workspace catkin_make
在工作区中,创建一个名为my_package的包:
cdsrc catkin_create_pkgmy_packageroscpprospystd_msgs
启动CLION
来源工作区:
cd../../../source./devel/setup.bash
并在同一终端启动CLion
sh/opt/clion-2018.2/bin/clion.sh
在CLion中打开包作为项目
在CLion中,转到File|打开并选择位于包文件夹内的CMakeLists.txt文件,然后选择将其作为项目打开:
添加源文件并编辑CMakeLists.txt
向项目添加新的源文件:右键单击Project树中的src,选择New|C/C++源文件并将其命名为my_package.cpp。
将整个talker.cpp文件从Publisher和Subscriber教程复制到my_package.cpp中。
新创建的源添加到的CMakeLists.txt和链接其对应程序库:
add_executable(my_packagesrc/my_package.cpp) target_link_libraries(my_package${catkin_LIBRARIES})
之后,重新加载CMake项目,并注意运行/调试配置列表中的my_package:
运行ROS节点
1、在从CLion运行节点之前,在新终端中打开ROS主站:
roscore
2、在CLion,运行
3、在单独的终端中,检查当前活动的ROS主题。如果我们打印消息chatter,输出将类似于我们在CLion中看到的内容:
现在,如果我们
总结
到此这篇关于ClionROS开发环境设置技巧的文章就介绍到这了,更多相关ClionROS开发环境设置内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。