c语言怎么编程机器人,移动机器人(电子球)编程(c语言)
我正在编程我的差分驱动移动机器人(电子球)移动到特定方向的特定坐标。机器人到达坐标没有问题,但是当它到达坐标时,它不能定位在特定的方向上,并在现场保持“旋转”寻找方向,有没有人有过这方面的经验?我被困在这个问题很长时间,真的希望有人知道为什么。代码的相关部分粘贴在下面。移动机器人(电子球)编程(c语言)
static void step() {
if (wb_robot_step(TIME_STEP)==-1) {
wb_robot_cleanup();
exit(EXIT_SUCCESS);
}
}
.
.
.
.
.
static void set_speed(int l, int r)
{
speed[LEFT] = l;
speed[RIGHT] = r;
if (pspeed[LEFT] != speed[LEFT] || pspeed[RIGHT] != speed[RIGHT]) {
wb_differential_wheels_set_speed(speed[LEFT], speed[RIGHT]);
}
}
.
.
.
.
static void goto_position1(float x, float y, float theta)
{
if (VERBOSE > 0) printf("Going to (%f, %f, %f)\n",x,y,theta);
// Set a target position
odometry_goto_set_goal(&og, x, y, theta);
// Move until the robot is close enough to the target position
while (og.result.atgoal == 0) {
// Update position and calculate new speeds
odometry_track_step(og.track);
odometry_goto_step(&og);
// Set the wheel speed
set_speed(og.result.speed_left, og.result.speed_right);
printf("%f",ot.result.theta);
print_position();
step();
} //after exiting while loop speed will be zero
og.result.speed_left = 0;
og.result.speed_right = 0;
if (((og.result.speed_left == 0) && (og.result.speed_right == 0)))
og.result.atgoal = 1;
return;
}
.
.
.
int main(){
//initialisation
while (wb_robot_step(TIME_STEP) != -1) {
goto_position1(0.0000000001,0.00000000001,PI/4);
}
return 0;
}
+1
作为一个可能相关的附注:为什么你将'spee_left'和'speed_right'设置为零,然后立即检查它们是否为零?无论如何,这个问题似乎是与'og.result.atgoal'的计算。无论您对“足够接近”的定义是否太精确,机器人都无法实现,或者有人将“og.result.atgoal”每次重置为零。由于我上面提到的'if'总是正确的,所以'og.result.atgoal'应该总是立即变为1,所以我高度怀疑它在其他地方被重新初始化为零。 –
+0
哪里在while循环中获得反馈。即你有一个设定值(一个所需的位置),那个函数包含你离那个位置有多近?它是'odometry_goto_step(&og);'偶然吗?还有,你可以发布'og'结构的定义吗?我假设有位置变量,也许像posx,posy?看到什么会有助于提出建议 –
c语言怎么编程机器人,移动机器人(电子球)编程(c语言)相关推荐
- 达奇机器人不能用电脑编程吗_奇幻工房智能编程机器人达奇dash编程容易学吗?适合几岁小朋友玩?...
智能编程机器人:dash,达奇 适合年龄:5-12岁左右 Dash是一个混合着红外线.速度.重力等多种传感器.拥有若干交互功能的机器人小伙伴.它可以唱歌,跳舞,与孩子对话,在不同应用程序的控制下进行游 ...
- 达奇机器人编程学院_奇幻工房智能编程机器人达奇dash编程容易学吗?适合几岁小朋友玩?...
展开全部 智能编程机器人:dash,达奇 适合年龄:5-12岁左右 Dash是一个混合着红外62616964757a686964616fe59b9ee7ad9431333363353738线.速度.重 ...
- 电子科大专科c语言作业1,13春电子科大《C语言(专科)》在线作业1
电子科大<C语言(专科)>在线作业1 1xt奥鹏作业学习网(aopeng123.cn) 试卷总分:1001xt奥鹏作业学习网(aopeng123.cn) 单选题1xt奥鹏作业学习网(aop ...
- 编程机器人疯抢教育市场!6大派玩家谁主沉浮
转自:https://36kr.com/p/5141523 儿童市场被誉为"朝阳行业"."常青行业",不仅产品范围广泛.品类也非常丰富.近年来,儿童市场也成为了 ...
- 初中文化能学编程吗_儿童早教益智,乐森星际特工智能编程机器人体验
作为新时代的家长,总是想把最好的给孩子,为了不让孩子输在起跑线,各种兴趣培训.课程报了一通,但效果不一定很好,也无形中给孩子造成了压力,这种现象在一二线大城市尤为明显.作为亲身经历这个过程的家长,我认 ...
- 2个红外传感器循迹原理_编程机器人9 -- 红外线传感器
这节课我们学习红外线传感器 01 -红外线传感器- 相比于上节课我们讲授的循迹传感器,红外线传感器在生活中我们就接触的多了,家里最常见的就是红外遥控器了吧!另外,红外线传感器在测距,测温方面的应用也是 ...
- c语言机器人编程软件,Coconut编程机器人软件官方版下载_Coconut编程机器人软件 v1.3.4官方版 - Win7旗舰版...
Coconut编程机器人软件,Coconut机器人是基于Arduino Uno的驱动机器人,能够对链接到暂存器和输入项的程序进行编码,提供基于物理计算的软件培训! 软件相关 编码机器人椰子硬件(HW) ...
- c语言编程基础第四版电子教案,《C语言编程基础》电子教案.doc
<C语言编程基础>电子教案 课题(内容)1.1 C语言简史及特点课时1教学任务分析教学目标知识技能通过本节课的教学,使学生了解并熟悉编程语言C的发展历史.特点及其种类和适用范围.过程与方法 ...
- 【C语言基础练习】有红、绿、蓝三种颜色的球各3个。现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配。
有红.绿.蓝三种颜色的球各3个.现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配. 1 #include<stdio.h>2 int main()3 {4 ...
- OpenCV NAO机器人辅助捡球丢球
文章目录 1. 概述 2. 相关技术 2.1 NAO机器人 2.2 Choregraphe 2.3 OpenCV 3. 总体设计与详细设计 3.1 系统模块划分 3.2 主要功能模块 4 遇到的问题 ...
最新文章
- BZOJ 3925 [Zjoi2015]地震后的幻想乡 ——期望DP
- python信息管理系统统计功能_用Python实现职工信息管理系统
- C语言 | 结构体详解(C结构体)
- 中石油训练赛 - Fermat‘s Optimization Problem(Java高精度运算+二分)
- 课程目标 java 1615308884
- 前端开发-编辑器安装-HbuilderX安装过程与基本使用 0226
- vue图片image
- Java基础学习总结(94)——Java线程再学习
- 多线程等待唤醒机制之生产消费者模式
- 解决安装Discuz!插件时提示“对不起,您安装的不是正版应用,安装程序无法继续执行”的方法...
- Python: ModuleNotFoundError解决方案
- 前端取色器 FSCapture
- 运动控制卡应用开发教程之C#
- 英语“就近原则”和“就远原则”
- XDOJ 回文数 C语言
- 163邮箱无法通过POP3接收邮件
- 如何免费使用xshell、xftp工具
- 支付宝上天了! 移动支付应用首次登上飞机
- NYOJ234-吃土豆(双层DP)
- 不歧视双非的计算机院校,这30所重点院校不歧视“双非”,公平竞争录取,爱了爱了!...