robotics 相关问题

机器人技术是处理机器人的设计,构造,操作,结构配置,制造和应用的技术分支。机器人技术与电子学,工程学,机械学和软件学有关。您也可以考虑在[*机器人*堆栈交换](http://robotics.stackexchange.com/)上提问。

我正在尝试弄清楚如何使用Arduino

我最近拿到了一块 Arduino 板,我正在尝试学习如何使用它,这样我就可以开始处理自己的项目了。我希望能够足够舒服地使用我可以的arduino...

回答 1 投票 0

类车移动机器人路径规划中如何引入最小掉头次数和强制交叉约束?

我在开发类CAR移动机器人的路径规划问题时,遇到了以下问题: 要求机器人必须经过设定的路径点,例如50

回答 1 投票 0

WPILIB (FRC) Gradlew 问题(Gradle 构建正常,但 gradlew 不行)

我最近在我的 Windows 笔记本电脑上安装了 wpilib 并启动了一个项目,但是当我尝试使用 gradlew 构建项目时它不起作用: 这是我的 build.gradle: 插件{ id“java” ...

回答 1 投票 0

使用 Lisp 进行机器人编程?

我正在寻找一些使用 lisp 进行机器人/人工智能编程的示例。是否有任何好的在线示例(最好不要太学术性)?

回答 4 投票 0

3D 点云上的路径规划

我有一个位置的 3D 点云,我正在尝试为移动机器人设计路径规划器。谁能指导我采取正确的方法来解决问题。为了...

回答 1 投票 0

机器人拣货订单优化算法

我正在尝试根据之前的机器人位置来优化拾取和放置问题。 假设所有代表工作站的位置都从 0 到 5 编号,并且有一个...

回答 1 投票 0

XBOX控制PLC

我正在开发一个项目,该项目允许用户使用 Oculus Rift 通过安装在机器人上的摄像头进行查看。只有一个问题,用户需要能够使用

回答 2 投票 0

Mindstorms NXT 编程对面超声波和光传感器

我通常不会寻求帮助,但经过几周的尝试使其发挥作用后,我开始寻求帮助作为一种尝试。 我在对乐高相扑机器人进行编程时遇到了麻烦。因为...

回答 1 投票 0

在另一个类中使用对象(需要参数)及其方法

我正在尝试使用 BeagleBone Black 对全向机器人进行编程。我发现 BlackLib 库对于控制引脚非常有效,但我在将其集成到...

回答 1 投票 0

最好的 .NET Micro Framework 开发板是什么,价格低于 300 美元? [已关闭]

我正在寻找一款相对便宜的 .NET Micro Framework 开发板,用于个人机器人项目。我不需要太多 I/O,但我至少需要 1 个串口和 1 个以太网端口...

回答 6 投票 0

Lego Mindstorm NXT、Cocoa 和 HiTechnic 传感器

我已经从这个项目中获取了现有代码,到目前为止非常满意。 然而,我现在需要使用一些从 hitechnic 购买的第三方传感器,

回答 2 投票 0

机器人寻路算法

我有一个机器人,它使用光电鼠标作为位置跟踪。基本上,当机器人移动时,它能够使用鼠标跟踪 X 和 Y 方向的变化。鼠标还跟踪哪个方向...

回答 3 投票 0

运行ros联合状态发布者最终找不到可执行文件

我想跑 ros2运行joint_state_publisher_gui joint_state_publisher_gui 当我运行它时,它说“找不到可执行文件”。 我该如何解决这个问题? 我尝试在网上寻找一些答案,但是...

回答 3 投票 0

为什么我的伺服电机按以下代码不动?

我正在尝试使用unity和arduino之间的串行连接来控制两个伺服电机。 然而,我注意到,虽然 arduino 代码可以工作,但我可以独立为伺服电机供电......

回答 1 投票 0

Mujoco 中的位置控制

作为 Mujoco 的新手,我刚刚在 mujoco 中创建了一个虚拟场景,现在我尝试控制其中的一些对象。该场景包含一个固定桌子,上面放置一本可移动的书,可以是

回答 1 投票 0

从UR5机器人的TCP/IP端口读取数据出现问题

我编写了下面的 MATLAB 代码,从 UR5 的 TCP/IP 30003 端口读取一些数据流。我得到的结果与我的机器人上的结果不同(我使用的是 URSim 3.5.3 Virtual

回答 2 投票 0

使用 swift-sim 进行机器人模拟的客户端应用程序错误

将robotstoolbox导入为rtb 将空间数学导入为 sm 将 numpy 导入为 np 从 Swift 导入 Swift # 制作 Swift 模拟器的实例并打开它 环境 = 斯威夫特() env.launch(实时=True) # ...

回答 1 投票 0

如何在ROS2 Humble中使用ackermann插件

我正在制作 4 轮阿克曼汽车的 urdf 模型。我想使用 ackerman Gazebo 插件,在 github 中我找到了一个使用示例,如下所示: 我正在制作 4 轮阿克曼汽车的 urdf 模型。我想使用 ackerman Gazebo 插件,在 github 中我找到了一个使用示例,如下: <gazebo> <plugin name="gazebo_ros_ackermann_drive" filename="libgazebo_ros_ackermann_drive.so"> <ros> <namespace>ackermann</namespace> <remapping>cmd_vel:=cmd_vel</remapping> <remapping>odom:=odom</remapping> <remapping>distance:=distance</remapping> </ros> <update_rate>100.0</update_rate> <!-- wheels --> <front_left_joint>front_left_joint</front_left_joint> <front_right_joint>front_eight_joint</front_right_joint> <rear_left_joint>rear_left_joint</rear_left_joint> <rear_right_joint>rear_right_joint</rear_right_joint> <left_steering_joint>left_steering_joint</left_steering_joint> <right_steering_joint>right_steering_joint</right_steering_joint> <steering_wheel_joint>steering_joint</steering_wheel_joint> <!-- Max absolute steer angle for tyre in radians--> <!-- Any cmd_vel angular z greater than this would be capped --> <max_steer>0.6458</max_steer> <!-- Max absolute steering angle of steering wheel --> <max_steering_angle>7.85</max_steering_angle> <!-- Max absolute linear speed in m/s --> <max_speed>20</max_speed> <!-- PID tuning --> <left_steering_pid_gain>1500 0 1</left_steering_pid_gain> <left_steering_i_range>0 0</left_steering_i_range> <right_steering_pid_gain>1500 0 1</right_steering_pid_gain> <right_steering_i_range>0 0</right_steering_i_range> <linear_velocity_pid_gain>1000 0 1</linear_velocity_pid_gain> <linear_velocity_i_range>0 0</linear_velocity_i_range> <!-- output --> <publish_odom>true</publish_odom> <publish_odom_tf>true</publish_odom_tf> <publish_wheel_tf>true</publish_wheel_tf> <publish_distance>true</publish_distance> <odometry_frame>odom</odometry_frame> <robot_base_frame>base_footprint</robot_base_frame> </plugin> </gazebo> 我的问题出在关节上,因为我制作了 4 个连续关节来使车轮滚动,并制作了两个旋转关节来使前轮沿 z 轴旋转。这 4 个关节是您在插件标签中可以看到的前四个关节。我的问题是,方向盘接头到底是什么?我必须把它放在哪里以及它应该如何连接到汽车的其他部分?如果我删除它,我实际上不会收到错误消息,但我的所有车轮都会在汽车下方移动到中心。如果我只在 Rviz 上显示 urdf,该模型似乎不错。我的 urdf 结构由车身的 base_link、4 个轮子和 base_footprint 组成。 这是仅使用Rviz推出的型号: 这是我启动 Gazebo 和插件的时候: 一般来说,ackermann_drive插件的工作原理是订阅名为cmd_vel(或者使用不同的名称,如果您在 urdf 文件中重新映射)类型为 geometry_msgs::msg::Twist 的主题,这意味着包含目标线速度和整车的目标横摆率。基于此目标,使用您在urdf中设置的 PID 控制器为驱动轮和方向盘生成单独的扭矩命令。 从这个意义上说,这里没有方向盘,你是用这个扭转命令来转向的。根据我通过查看代码的理解,steering_wheel_joint并不是严格需要的,但您不应该删除它,因为,正如您所注意到的,整个链接/关节结构受到损害。我猜想,如果您有一些链接连接到 steering_wheel_joint,那么它将被渲染为实际的方向盘,来自左右方向盘的平均值(与物理现实中发生的情况相反) ). 要查找此内容,您实际上应该打开插件文件gazebo_ros_ackermann_drive.cpp 只是一个片段(第 533-543 行,来自我的评论): // computing the steering wheel angle averaging left and right auto steer_wheel_angle = (left_steering_angle + right_steering_angle) * 0.5 / steering_ratio_; // setting the steer torque on the steering wheels joints_[STEER_LEFT]->SetForce(0, left_steering_cmd); joints_[STEER_RIGHT]->SetForce(0, right_steering_cmd); // setting the driving torque on the driving wheels joints_[REAR_RIGHT]->SetForce(0, linear_cmd); joints_[REAR_LEFT]->SetForce(0, linear_cmd); if (joints_.size() == 7) { // setting the steer angle joints_[STEER_WHEEL]->SetPosition(0, steer_wheel_angle); } 另外(第 224-229 行): // if the steering_wheel_joint is deleted if (!impl_->joints_[GazeboRosAckermannDrivePrivate::STEER_WHEEL]) { RCLCPP_WARN( impl_->ros_node_->get_logger(), "Steering wheel joint [%s] not found.", steering_wheel_joint.c_str()); // the joints are potentially messed up impl_->joints_.resize(6); } 如需更详细的答案,我需要您提供更多详细信息:) 希望这能有所帮助

回答 1 投票 0

Scara 机器人逆运动学

我正在开发一个由 Arduino 控制的 Scara 机器人,并试图找出逆运动学。我编写了一个简单的示例草图来测试我的功能,但由于

回答 1 投票 0

水弹性接触和稳健的接触生成

我对物理模拟和机器人问题的稳健接触生成非常感兴趣。我知道 Drake 的水弹性接触模块 [1,2],它为 mod 提供了一种优雅的方法...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.