@大水怪
将 -DBUILD_REDIST_PACKAGE=OFF改成-DBUILD_REDIST_PACKAGE=ON后,可以编译完成,此时音频固件不会自动加载。请下载这份音频固件,放在这个目录下/usr/local/share/libfreenect/,现在启动freenect-micview可以成功开启麦克风。
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision

xiaoqiang 发布的帖子
-
RE: 小强ROS机器人教程(8)___kinect1代 ROS驱动测试与安装
-
小强ROS机器人教程(18)___使用DSO_SLAM进行三维建模
Direct Sparse Odometry(DSO)是业内很流行的lsd_slam系统作者的学生Jakob Engel开发的,实测性能和精度优于lsd_slam。DSO被作者开源到github,同时还一并开源了DSO在ros系统下的使用代码实例dso_ros.
本篇教程将演示如何在小强开发平台上安装DSO和dso_ros, 利用小强平台上的摄像头实时运行DSO进行三维建模。点击观看视频。1.DSO的安装
注:因为小强开发平台已经提前安装好了不少DSO需要的依赖包,下文将跳过这些包的安装,请其它开发平台的读者参考github上的完整安装教程进行安装。
1.a安装依赖包
sudo apt-get install libsuitesparse-dev libeigen3-dev libboost-dev sudo apt-get install libopencv-dev
1.b下载源代码
cd ~/Documents/ git clone https://git.bwbot.org/publish/dso
1.c继续配置依赖包
sudo apt-get install zlib1g-dev cd ~/Documents/dso/thirdparty tar -zxvf libzip-1.1.1.tar.gz cd libzip-1.1.1/ ./configure make sudo make install sudo cp lib/zipconf.h /usr/local/include/zipconf.h
1.d编译安装
cd ~/Documents/dso/ mkdir build cd build cmake .. make -j 2
2.dso_ros的安装
注:原作者提供的源代码有两个分支,master分支对应rosbuild版,catkin分支对应catkin版。对于现代ROS版本,推荐使用catkin版本,安装使用更方便。但是作者的catkin分支存在代码缺陷,实际无法安装使用,因此下文将安装我们蓝鲸智能修改之后的dso_ros版本。
cd ~/Documents/ros/src git clone https://gitee.com/BluewhaleRobot/dso_ros.git cd .. export DSO_PATH=/home/xiaoqiang/Documents/dso catkin_make #或者用这条命令 catkin_make -DCATKIN_WHITELIST_PACKAGES=""
3.开始使用
sudo service startup stop # 停止startup服务 roslaunch startup startup.launch # 启动摄像头等程序 roslaunch dso_ros dso_ros.launch # 启动dso程序
现在移动摄像头,就能开始对周围环境进行三维建模,移动过程避免急转弯和剧烈运动。
对于小强用户,可以先遥控小强运动同时用rosbag录制/camera_node/image_raw这个image topic数据,然后重放,这样可以实现大范围的建模。rosbag重放前,需要关闭usb摄像头节点(sudo service startup stop),否则会有图像发布冲突。
-
小强ROS机器人教程(7)___使用ps3手柄控制小强移动
原理:本教程涉及3个包
ps3joy负责将ps3蓝牙接受信号转换成标准的linux设备(/dev/input/js0
)
joy_node节点负责将上述joy设备数据转换成ros中的joy数据类型
turtlebot_teleop_joy负责将上述joy数据topic 转换成小车运动指令/cmd_vel
操作步骤
0.第一次使用手柄,需要将手柄与蓝牙接受器进行绑定,以后可以直接从步骤1开始
如果手柄和小强同时购买,那么我们已经提前为您将手柄配对可以从步骤1开始使用。
绑定方法参考原装和国产ps3手柄ros驱动程序中的“快速使用方法步骤1”1.启动ps3joy,将ps3手柄与蓝牙接受器配比
#确保蓝牙接收器已经插入主机usb口 sudo bash rosrun ps3joy ps3joyfake_node.py
正常会出现下面的提示
root@xiaoqiang-desktop:~# rosrun ps3joy ps3joyfake_node.py No inactivity timeout was set. (Run with --help for details.) Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button.
如果提示下列错误
按下下图中的手柄配对键
配对成功的话,上面的窗口会输出类似下面的结果root@xiaoqiang-desktop:~# rosrun ps3joy ps3joyfake_node.py No inactivity timeout was set. (Run with --help for details.) Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button. Connection activated
2.启动joy_node和turtlebot_teleop_joy
roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
正常启动后如下图所示
ps3fakexiaoqiang_teleop.launch文件内容如下<launch> <node pkg="turtlebot_teleop" type="turtlebot_teleop_joy" name="turtlebot_teleop_joystick"> <param name="scale_angular" value="0.4"/> <param name="scale_linear" value="0.4"/> <param name="axis_deadman" value="10"/> <param name="axis_linear" value="1"/> <param name="axis_angular" value="0"/> <param name="axis_enbar" value="12"/> <param name="axis_disenbar" value="14"/> <remap from="turtlebot_teleop_joystick/cmd_vel" to="/cmd_vel"/> <remap from="turtlebot_teleop_joystick/joy" to="/joy"/> </node> </launch>
上述launch文件中的参数分别对应直线速度最大值(scale_linear)和角速度最大值(scale_angular),油门离合键(axis_deadman)、前进后退轴(axis_linear)、左右转轴(axis_angular),底盘红外使能键(axis_enbar),底盘红外关闭键(axis_disenbar),这些控制按键、摇杆的映射关系。
3.保持按住手柄油门键(下图中的10号键),现在使用左侧的推杆可以控制小车的前后移动和转向(下图中的1+1-摇杆)
根据这些按键编号,可以修改launch文件中的相关参数从而改变按键映射关系
花样玩法
购买ps3手机支架, 安卓手机装上小强图传app,这样可以实现图传遥控
-
MIT 博士团造自动驾驶快递小车Robby,能解决“最后一公里”嘛?
李瑞李瑞是 MIT 的博士毕业生,他的产品是一辆名为 Robby 的自动驾驶快递机器人,做 Robby 的初衷,是源于美国的快递成本非常高。
“以送餐为例,每送一次需要向客户收 5- 10 美金的快递费(食物本身可能也就十几美金而已)。如果换成快递小车,那么费用可以降低至 1-2 美金,而实际成本比这个还要低。”
Robby 车身装置一个箱子,里面可以摆放各种快递物品。当它到达指定地点,用户可以在手机上按一个按钮,Robby 后背的箱子就能开启,用户取出物品之后,Robby 自己就又开始前往下一家了。
点击观看动图
在李瑞给我们演示的视频里,开发人员故意在路中间放了一把椅子,Robby 小车会绕开椅子,规划新的路径。开发人员还会故意踢 Robby 一脚(类似波士顿动力 Big dog 的测试),但Robby 还是“不屈不挠”重新返回路径上。
点击观看动图
Robby 最慢行驶速度相当于人的行走速度,最快可以达到人行走速度的 4-5 倍,这相当于是普通自行车的速度。它本质上使用的是自动驾驶技术,最核心的是定位、导航和避障。
Robby 机器人在今年 3 月始于波士顿,4 月份入选 YC 的暑期项目,5 月底团队搬到硅谷,6-8 月在 YC 孵化。虽然还只是手工制作的粗糙原型机,但 Robby 机器人已经在斯坦福大学校园里送货超过 50 次,他们还与 Instacart 合作,展开商业化测试。这么快就投入使用,是因为 Robby 团队十分看重产品在真实场景中的测试。
本文来源:http://www.leiphone.com/news/201610/q0CieGmVy9UxPmR3.html -
Tesla发布autopilot2.0,全面升级硬件,具备全自动驾驶能力
特斯拉本周四宣布旗下所有车型(包括Model 3)都已具备完全自动驾驶(Full self-driving )所需的硬件,但尚未激活。具体的更新如下:
车身四周一共加装了 8 个摄像头,提供 360 度环视功能,最远能够测量 250 米范围内的物体。除了摄像头,特斯拉还加装了 12 个超声波传感器,能够探测到比此前系统远两倍距离范围内的障碍物。特斯拉车前还有一个加强版的前向雷达,能够在雨雪、大雾、扬尘天气下工作以及探测到前方车辆。为了处理传感器收集的数据,特斯拉还为车辆配置了一个全新车载电脑,其计算能力是上一代产品的 40 倍,用于处理视觉、声波和雷达软件的运行。这套系统可以同时在各个方位进行探测,覆盖的波长频段相当丰富。
特斯拉表示,配备这种全新硬件的 Model S 和 Model X 车型已经可以量产,消费者在今天就可以购买。但是在激活新硬件功能之前,特斯拉表示会对此进行数百万英里的路测,等这些功能测试完毕、表现稳定,届时官方会通过 OTA 推送给特斯拉车主。
本文来源:http://www.leiphone.com/news/201610/T0hLC1zegatYNA0Z.html
-
小强ROS机器人教程(22)_操作6自由度机械臂
6自由度机械臂的资料在这个百度云盘链接里:http://pan.baidu.com/s/1nuBpDaD 请仔细阅读二次开发部分的串口通信协议、虽然下文使用的是usb hid通信方式,但命令格式是一样
下文将操作6自由度机械臂完成主控板上存储的3组动作。
控制原理: 小车主机使用usb连接机械臂主控板,用户发送名为robot_arm/cmdstring的topic,这个topic内容为控制命令,最后由robot_arm节点负责将这个topic内容经由usb hid协议发送给机械臂主控板。
1.运行robot_arm节点
rosrun robot_arm move.py #robot_arm包代码在这里 http://git.bwbot.org/publish/robot_arm
启动正常,机械臂会执行动作0(默认状态),同时命令窗口会显示如下内容
xiaoqiang@xiaoqiang-desktop:~/Documents/ros$ rosrun robot_arm move.py Opening robot arm device Manufacturer: MyUSB_HID Product: LOBOT Serial No: 8D9823654852 Run the zero group action
2.构造robot_arm/cmdstring topic
robot_arm/cmdstring 这个topic 类型是std_msgs.msg中的String 即字符串。根据上文提供的机械臂二次开发资料,我们可以知道6自由度的控制协议是由一个无符号byte数组表示,因此我们在这里稍加改造,直接将这个数组的hex值变成字符串打包成topic命令。变换方式是采用python的byte array表示方式,将数组中每个元素的hex编码串在一起,然后将其中的0x换成\x。
例如: [0x55,0x55,0x05,0x06,0x00,0x01,0x00] 这个控制命令数组,转换成robot_arm/cmdstring 内容是,'\x55\x55\x05\x06\x00\x01\x00' 小技巧:看不懂的话,还可以用python的map函数帮忙转换,找规律。list(map(ord,'\x55\x55\x05\x06\x00\x01\x00'))
我们要控制机械臂完成3个动作,这三个字符串内容如下
'\x55\x55\x05\x06\x00\x01\x00' '\x55\x55\x05\x06\x01\x01\x00' '\x55\x55\x05\x06\x02\x01\x00' 找到规律没...
3.发布运动命令
新开一个命令行终端,因为是演示,所以直接使用rostopic 的pub功能,将上面的字符串命令打包成topic发给robot_arm节点 动作1: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x00\x01\x00' 动作2: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x01\x01\x00' 动作3: rostopic pub robot_arm/cmdstring std_msgs/String '\x55\x55\x05\x06\x02\x01\x00'
4.运动结果暂时没有视频,需要自己实际操作,觉得运动不满意的话请参考我们这个舵机运动控制帖子:电机控制与缓动函数
-
RE: ubuntu14.04升级cmake版本后,ROS catkin_make错误解决办法
还有一个偷懒方法是,将build目录下的makefile中的CMAKE_COMMAND 中的cmake路径修改下
-
如何简单规避冗余参数对曲面方程拟合的影响
曲面方程(可以是高维)的参数通常都满足这样一个条件
参数同时放大一个倍数,曲面方程不变,以平面方程为例: A*x+B*y+C*z+D=0 让A、B 、C 、D同时放大两倍,原方程表示的平面显然不变
用多个点来拟合一个曲面时,因为上述性质,会导致参数空间存在一个稳定的平凡解,用迭代法求解时,算法容易陷入这个无意义的平凡解,因而拟合失败。
平凡解:所有参数为零
规避这个平凡解的办法是,将平凡解从参数空间中消除,通常的实现方式是修改算法,增加参数限制条件。
本文要介绍的一个小技巧是:直接固定一个参数,因为参数的绝对值没有意义,相对大小才是有意义的,所以可以直接将一个参数固定为1
这个技巧需要注意的地方是:参数有多个,我们需要固定的参数的真实值不能为零(零值没有比值,所以不能用)。在实际运用时,我们虽然不知道参数的真实值(知道了就不求了),但可以确定某个参数肯定不能为零,因此固定参数的选择还是很容易实现的,本方法的可行性也就得到了保障。
-
ROS运行python脚本报错: No module named srv
调试一个python脚本时,突然报错
ImportError: No module named srv under tf2_msgs
机器已经安装了ros jade完整版,在/opt/ros/jade/lib/python2.7/dist-packages/tf2_msgs目录下也有srv目录,应该没问题的。
google一番,发现有人反应是python包名字问题(http://www.aichengxu.com/view/75748),但tf2_msgs是官方包,自然不存在这个问题。
回想一下今天对系统的改动,白天升级了一下jade版本的tf2包,但因为bullet依赖问题,升级到一半就放弃了(这个依赖问题可以参考http://answers.ros.org/question/220676/how-to-install-bullet-on-indigo-in-ubuntu/)。
重新catkin_make 了下ros工作目录,然后仔细翻看了一下ros工作目录的devel目录,发现/home/xiaoqiang/Documents/ros/devel/lib/python2.7/dist-packages目录下竟然还有tf2_msgs文件夹,但里面没有srv目录。
所以找到问题根源了一个ROS python包即使从工作目录删除了,catkin_make命令也不会删除之前残留在devel目录下的文件夹 rosrun 和 roslaunch 运行节点程序时,优先查找用户工作目录,导致尝试从一个残留文件夹加载运行文件,这就导致了开头的问题
-
特斯拉发生首宗自动驾驶致死车祸,遭受调查
北京时间7月1日早间消息,美国高速公路交通安全委员会(NHTSA)周四表示,将对2.5万辆特斯拉Model S车型展开初步调查。调查原因是由于5月7日,在佛罗里达州Williston,一名Model S车主在使用Autopilot自动驾驶模式时发生事故死亡。
NHTSA表示,事故车辆是2015年款Model S,事故发生时车辆开启了Autopilot自动驾驶模式。该部门将调查“事故发生时驾驶辅助功能的设计和性能”。如果NHTSA认为车辆安全性存在问题,那么将会要求车辆召回。
初步报告显示,当时在一个十字路口,在这辆特斯拉汽车的前方,一辆重型卡车正在左转。
事发时,车辆正处于自动驾驶模式,Model S的摄像头和雷达疑似未能识别出左转弯的蓝色大货车,导致车辆并未启动刹车,全速撞上货车,图中标注红色的特斯拉就从货车底下钻了过去,驾驶员当场死亡。
对于事故原因,特斯拉表示:“在天空明亮光线的照射之下,Autopilot系统和司机都没有注意到重型卡车白色的侧方,因此没有踩刹车。