robot upstart 问题
1.启动后在记录文件发现左轮节点未启动:
因为左边的类未实例化,不会去订阅消息然后初始化
2.两个节点均可以启动后,发现启动后又死掉
因为在程序里有getenv(“HOME”)然后付给string,getenv返回为NULL时程序会报错死掉
3.robot upstart 的用户权限比较低,没有权限操作串口(使用chmod 777 /dev/ttyS*,重启后失效)
通过udev修改权限,具体如下:
在/etc/udev/rules.d/文件夹下添加文件50-chmod-tty.rules,内容如下:
KERNEL=="ttyS[0-9]*", SUBSYSTEM=="tty", GROUP="dialout", MODE="0666"
4.最后发现具备了操作串口的权限,但打开串口失败,修改如下:
int left_wheel_motor::UART0_Open(char *port)
{ int fdd;
fdd = open( port, O_RDWR|O_NOCTTY|O_NDELAY);
if (FALSE == fdd)
{
perror("Can't Open Serial Port");
return(FALSE);
} if(fcntl(fdd, F_SETFL, ) < ) //if and else: set as block
{
printf("fcntl failed!\n");
return(FALSE);
}
else
{
printf("fcntl=%d\n",fcntl(fdd, F_SETFL,));
} if( == isatty(STDIN_FILENO))
{
printf("standard input is not a terminal device\n");
return(FALSE);
}
else
{
printf("isatty success!\n");
}
printf("fd->open=%d\n",fdd);
return fdd;
} 改为: int left_wheel_motor::UART0_Open(char *port)
{ int fdd;
fdd = open( port, O_RDWR|O_NOCTTY);
if (FALSE == fdd)
{
perror("Can't Open Serial Port");
return(FALSE);
}
printf("fd->open=%d\n",fdd);
return fdd;
}
1. apt-get install ros_indigo_robot_upstart
2. rosrun robot_upstart install bzrobot_bringup/launch/bzrobot_base.launch
3. rosrun robot_upstart uninstall bzrobot
4. sudo service bzrobot start
5. sudo service bzrobot stop
6. sudo nano /var/log/upstart/bzrobot.log
7. sudo rm -f /var/log/upstart/bzrobot.log
robot upstart 问题的更多相关文章
- run a Freight robot (2)
3. Network Setup Connecting Freight to a Monitor The easiest way to configure the wireless networki ...
- Robot Framework用户手册 (版本:3.0)
版权信息:诺基亚网络和解决中心 本翻译尊重原协议,仅用于个人学习使用 1.开始: 1.1 介绍: Robot Framework是一个基于Python的,为终端测试和验收驱动开发(ATDD)的可扩展的 ...
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
- RIDE -- Robot Framework setup
RobotFramework 是一款基于python 的可以实现关键字驱动和数据驱动并能够生成比较漂亮的测试报告的一款测试框架 这里使用的环境是 python-2.7.10.amd64.msi RID ...
- [8.2] Robot in a Grid
Imagine a robot sitting on the upper left corner of grid with r rows and c columns. The robot can on ...
- Robot Framework自动化测试 ---视频与教程免费分享
当我第一次使用Robot Framework时,我是拒绝的.我跟老大说,我拒绝其实对于习惯了代码的自由,所以讨厌这种“填表格”式的脚本.老大说,Robot Framework使用简单,类库丰富,还可以 ...
- 【转】Linux 初始化 init 系统 [sysvinit systemd upstart]
http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp?sort_by=&show_abstract=true& ...
- robot创建桌面图标(转载)
桌面ride图标,安装之后会自动创建(偶尔也会创建失败),创建桌面图标方法如下: 1. 新建快捷方式 在桌面右击鼠标,弹出的菜单选择 新建-快捷方式 ,然后在"请键入对象"的位置输 ...
- Robot Framework 的安装和配置(转载)
Robot Framework 的安装和配置 在使用 RF(Rebot framework)的时候需要 Python 或 Jython 环境,具体可根据自己的需求来确定.本文以在有 Python 的环 ...
随机推荐
- python多进程并发进程池Pool
简介: python中的多进程主要使用到 multiprocessing 这个库.低版本python这个库在使用 multiprocessing.Manager().Queue时会出问题,建议大家升级 ...
- Seven Puzzle Aizu - 0121 (搜索)
7 パズル ime limit1000 ms Memory limit131072 kB OSLinux Source3rd PC Koshien, Final 7 パズルは 8 つの正方形のカードと ...
- 树状数组:CDOJ1583-曜酱的心意(树状数组心得)
曜酱的心意 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 131072/131072KB (Java/Others) Description ...
- CF 219 D:Choosing Capital for Treeland(树形dp)
D. Choosing Capital for Treeland 链接:http://codeforces.com/problemset/problem/219/D The country Tre ...
- windows下创建子进程过程中代码重复执行问题
windows在启动子进程的时候会将主进程文件倒入到子进程中.导入模块就相当于执行这个模块中的代码, 所以第一个print会在主进程中执行一次,又在被导入的过程中在子进程中又执行了一次. p.star ...
- 【NOIP2017】逛公园 拆点最短路+拓扑(记忆化搜索
题目描述 策策同学特别喜欢逛公园.公园可以看成一张N个点M条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间. 策 ...
- perl第三章 列表和数组
访问数组中的元素 $fred[0] $fred[1] $number=2.75; print $fred[$number-1] 结果就是print $fred[1] 特殊的数组索引1.对索 ...
- [python学习篇][书籍学习][python standrad library][内建类型]之数值
数值类型 — int, float, long, complex 有四种不同的数值类型:普通整数.长整数.浮点数和复数 普通整数(或者简称整数)使用C中的long实现,其精度至少为32位(sys.ma ...
- IO Streams:字节流
简介 程序使用字节流来执行8位字节的输入和输出.所有字节流类都继承于InputStream和OutputStream. 有很多字节流类:为了说明字节流如何工作,我们将重点关注文件I / O字节流Fil ...
- mysqld got signal 11
问题发生背景 问题实例之前使用的是percona server,是安装pmm镜像自带的数据库,之后通过mysqldump迁移到了MySQL server,目前是只有有pmm server 访问pmm库 ...