
机器人
文章平均质量分 76
ROS相关
六个九十度
嵌入式软件工程师
展开
-
突破海康相机255预置点的限制
背景什么是相机的预置点?预置点就是一条记录,它记录下云台的俯仰角、偏转角,镜头的焦距、相机的光圈、曝光、白平衡等拍照参数,储存在相机内部的SD卡上,并被赋予一个编号以供用户索引。用户可以让相机根据指定编号的预置点,将自身拍照参数恢复到预置点记录的参数值,以实现拍摄预定区域的画面,这在安防领域很常用。海康相机的云台最多支持255个预置点,对于安防一般够了,但对巡检机器人来说就不够,因为机器人是移动的,它的巡视面积非常大,很容易就突破这个数目。预置点的用法一般通过调用NET_DVR_PTZPreset(原创 2020-08-08 11:04:34 · 6401 阅读 · 2 评论 -
将海康威视相机封装成ROS节点时,如何管理相机SDK繁多的动态库?
问题海康威视的相机SDK,包含大量的动态库,如果在它之上开发Linux应用程序,则不但编译时要链接那些动态库,运行时也要确保那些动态库存放在/lib、/usr/lib等目录,或存放在环境变量LD_LIBRARY_PATH里指定自定义目录下,否则程序一运行就会报错,找不到动态库。编译时的链接问题好解决,将动态库都放到源码的lib目录下即可。运行时的加载库问题不好解决, 不论是将动态库拷贝到系统目录,还是设置环境变量,都很不方便,而且容易忘。这种不便在更换开发调试环境时尤其明显,想象下,你将代码che原创 2020-07-27 15:33:11 · 2136 阅读 · 6 评论 -
libuvc_camera启动报错Invalid mode问题的解决办法
libuvc_camera是ROS下的一个软件包,用于将USB摄像头的视频内容发布到Topic上,但是启动时经常会遇到类似报错:‘’’process[camera/mycam-1]: started with pid [4578]unsupported descriptor subtype VS_COLORFORMATunsupported descriptor subtype VS_CO...原创 2020-01-13 14:05:43 · 5524 阅读 · 1 评论 -
ROS环境变量ROS_IP的真正含义
当你需要2台以上ROS机器互相通信时,就需要将其中一台选为master,其余的作为slave,然后仅在master上运行roscore那么slave怎么知道master的IP和端口号呢?通过ROS_MASTER_URI获取,但是,如果master或某个slave是多网卡的机器,ROS怎么知道该用哪个网卡跟其他主机通信呢?通过ROS_IP获取!什么意思?一个IP最多对应一个网卡,所以指定IP就能...原创 2019-11-23 15:31:11 · 3101 阅读 · 1 评论 -
使用rosbridge协议实现安卓跟ROS的解耦
安卓与ROS通信的现状因为ROS官方支持的语音绑定只有C++和Python,所以目前安卓想与ROS通信,必须借助半官方的rosjava包,而Rosjava太重了,因为它跟C++/Python一样,是一个全功能的ROS绑定,意即你可以在Java(android)平台上创建Master Node,然后其他Node(C++/Python)可以连上这个Master,进行分布式通信!这对于桌面Java或许还能原创 2016-11-08 15:46:02 · 8051 阅读 · 5 评论 -
2016世界机器人大会归来随想
上周去参加世界机器人大会,刚去以为就是纯学术会议,没想到还有展览区和竞赛区,不过竞赛区都是一些RoboCup之类的东东,跟实用型机器人关系不大;展览区很多展商的技术骨干也在学术会议上做了报告,所以集中谈会议所得工业机器人(偏重控制)连续型机器人(Continuum Robot)用于对未知结构的生产线进行快速原型,以方便部署最终的关节型工业机器人。类似于IC行业先用FPGA验证逻辑,再用ASIC批量生原创 2016-10-29 17:55:52 · 2093 阅读 · 0 评论 -
通过rosjava实现android订阅ROS自定义消息
android要与ROS通讯,首先要有rosjava库,这玩意儿类似于ROS官方支持的rospy roscpp等,也是ROS分布式计算平台的一种language binding可惜rosjava出现的太晚,不够成熟,文档也很不详细,社区活跃度也不高,很多问题都是没有任何搜索引擎能帮上忙的我们的机器人配备了一块android平板,要显示底盘的电量信息,这就要订阅底盘上ROS通过/batte原创 2016-08-19 10:51:27 · 6631 阅读 · 0 评论 -
安卓UI线程向ROS节点发送消息的方法
想要在安卓上运行ROS节点,需要rosjava这个client library,以及构建在rosjava之上的RosActivity类安卓上的每个ros节点,跟ubuntu上的常规节点不一样,不是进程而是线程,亦称作nodelet,所以在一个安卓app里可以运行多个ros node,构成一个node网络node通过NodeMain接口定义,NodeMain定义了2个函数:setup和loo原创 2016-04-14 19:23:14 · 2681 阅读 · 4 评论 -
andorid与ros互操作的关键点
export ROS_IP=本机局域网IP原创 2016-03-19 13:18:06 · 3104 阅读 · 2 评论 -
ROS运行python脚本报错ImportError: No module named srv
最近又写了个ROS(robot operating system)包,格式照抄之前的包,结构如下:haipeng@wang:~/catkin_ws/src$ tree net_man/net_man/├── CMakeLists.txt├── package.xml├── scripts│ └── net_man.py├── src└── srv ├─原创 2015-10-12 09:28:00 · 10037 阅读 · 2 评论