(window.webpackJsonp=window.webpackJsonp||[]).push([[270],{591:function(t,a,s){"use strict";s.r(a);var e=s(10),l=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"ros"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ros"}},[t._v("#")]),t._v(" ROS")]),t._v(" "),a("p",[a("strong",[t._v("FDILink ROS 例程用户使用手册")])]),t._v(" "),a("fdi-img",{attrs:{width:"100%",alt:"FDILink ROS",src:"/developers/03-fdilinksdk/ROS/图片16.png",caption:""}}),t._v(" "),a("h2",{attrs:{id:"_1-简介"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1-简介"}},[t._v("#")]),t._v(" 1. 简介")]),t._v(" "),a("p",[t._v("为帮助用户在 ROS 中更快部署机器人项目,本公司提供 ROS 节点数据发布例程,便于将惯导产品信息发布到 ROS 话题。ROS(Robot Operating System)是当前主流机器人操作系统;借助本例程,可更方便地利用 ROS 能力,快速构建并运行应用。")]),t._v(" "),a("h2",{attrs:{id:"_2-使用方法"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-使用方法"}},[t._v("#")]),t._v(" 2. 使用方法")]),t._v(" "),a("h3",{attrs:{id:"_1-地面站配置数据输出"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1-地面站配置数据输出"}},[t._v("#")]),t._v(" (1) 地面站配置数据输出")]),t._v(" "),a("ol",[a("li",[t._v("在 Windows 下通过 FDIGroundStation 配置串口发布数据。该步骤用于保证模块串口能正常输出所需数据包;出厂默认仅开启部分数据包。数据包定义见 "),a("RouterLink",{attrs:{to:"/developers/02-fdilink/"}},[t._v("FDILink 通讯协议")]),t._v("。")],1)]),t._v(" "),a("fdi-img",{attrs:{width:"100%",alt:"地面站配置数据输出",src:"/developers/03-fdilinksdk/ROS/图片17.png",caption:""}}),t._v(" "),a("ol",{attrs:{start:"2"}},[a("li",[t._v("配置完成后保存并重启设备。此时可用 Windows 串口助手查看数据:帧以 "),a("code",[t._v("FC")]),t._v(" 开头,第二字段为具体数据包 ID(十六进制)。")])]),t._v(" "),a("fdi-img",{attrs:{width:"100%",alt:"串口助手查看十六进制数据",src:"/developers/03-fdilinksdk/ROS/图片18.png",caption:""}}),t._v(" "),a("h3",{attrs:{id:"_2-ubuntu-中配置串口权限"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-ubuntu-中配置串口权限"}},[t._v("#")]),t._v(" (2) Ubuntu 中配置串口权限")]),t._v(" "),a("fdi-img",{attrs:{width:"100%",alt:"Ubuntu 串口权限配置",src:"/developers/03-fdilinksdk/ROS/图片19.png",caption:""}}),t._v(" "),a("ol",[a("li",[t._v("连接 IMU 后,打开终端,用 "),a("code",[t._v("cd")]),t._v(" 进入例程所在目录。")]),t._v(" "),a("li",[t._v("查看端口号:")])]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("ls")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-l")]),t._v(" /dev/ttyUSB*\n")])])]),a("ol",{attrs:{start:"3"}},[a("li",[t._v("为 IMU 所连串口赋权(将 "),a("code",[t._v("imu_serial_port")]),t._v(" 替换为实际端口,如 "),a("code",[t._v("/dev/ttyUSB0")]),t._v(";每次重新连接后通常需重新赋权):")])]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("chmod")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("777")]),t._v(" imu_serial_port\n")])])]),a("ol",{attrs:{start:"4"}},[a("li",[t._v("输入 Ubuntu 系统密码后,ROS 端即可接收串口实时数据。")])]),t._v(" "),a("h3",{attrs:{id:"_3-安装依赖项"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_3-安装依赖项"}},[t._v("#")]),t._v(" (3) 安装依赖项")]),t._v(" "),a("ul",[a("li",[t._v("ROS Melodic:")])]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt-get")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" ros-melodic-serial\n")])])]),a("ul",[a("li",[t._v("ROS Kinetic:")])]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sudo")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("apt-get")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" ros-kinetic-serial\n")])])]),a("h3",{attrs:{id:"_4-编译-ros-例程"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_4-编译-ros-例程"}},[t._v("#")]),t._v(" (4) 编译 ROS 例程")]),t._v(" "),a("fdi-img",{attrs:{width:"100%",alt:"编译 ROS 例程",src:"/developers/03-fdilinksdk/ROS/图片20.png",caption:""}}),t._v(" "),a("ol",[a("li",[t._v("在例程工作空间目录执行:")])]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("catkin_make\n")])])]),a("ol",{attrs:{start:"2"}},[a("li",[t._v("编译成功后会提示类似 "),a("code",[t._v("[100%] Built target ...")]),t._v(" 的信息。")])]),t._v(" "),a("h3",{attrs:{id:"_5-启动-imu-例程"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_5-启动-imu-例程"}},[t._v("#")]),t._v(" (5) 启动 IMU 例程")]),t._v(" "),a("fdi-img",{attrs:{width:"100%",alt:"启动 IMU 例程",src:"/developers/03-fdilinksdk/ROS/图片21.png",caption:""}}),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" catkin_ws/devel/setup.bash\nroslaunch FDILink launch_imu.launch\n")])])]),a("h2",{attrs:{id:"_3-测试效果"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_3-测试效果"}},[t._v("#")]),t._v(" 3. 测试效果")]),t._v(" "),a("p",[t._v("按上述步骤正常运行后,终端会实时打印串口接收到的数据。")]),t._v(" "),a("fdi-img",{attrs:{width:"100%",alt:"ROS 例程测试效果",src:"/developers/03-fdilinksdk/ROS/图片22.png",caption:""}}),t._v(" "),a("h2",{attrs:{id:"_4-注意事项"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_4-注意事项"}},[t._v("#")]),t._v(" 4. 注意事项")]),t._v(" "),a("ol",[a("li",[t._v("当前 ROS1 例程仅示例解析 FDILink 协议中的部分数据包:")])]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",{staticStyle:{"text-align":"left"}},[t._v("序号")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("Packet_ID")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("说明")]),t._v(" "),a("th",{staticStyle:{"text-align":"left"}},[t._v("备注")])])]),t._v(" "),a("tbody",[a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("1")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("0x40")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("MSG_AHRS")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("主要姿态信息")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("2")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("0x42")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("MSG_INS/GPS")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("NED 坐标系位置信息")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("3")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("0x59")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("MSG_RAW_GNSS")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("单天线卫星数据")])]),t._v(" "),a("tr",[a("td",{staticStyle:{"text-align":"left"}},[t._v("4")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("0x78")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("MSG_GNSS_DUAL_ANT")]),t._v(" "),a("td",{staticStyle:{"text-align":"left"}},[t._v("双天线卫星数据")])])])]),t._v(" "),a("ol",{attrs:{start:"2"}},[a("li",[t._v("若需额外数据包:先在 Windows 上位机配置好数据输出,再在 ROS 例程的 "),a("code",[t._v("main.cpp")]),t._v(" 中,按现有接收方式增加对应数据包的类与接收代码。")])])],1)}),[],!1,null,null,null);a.default=l.exports}}]);