# Mobile Manipulation Project
Final project for ME 449: Robotic Manipulation, Northwestern University, Fall 2019.
## Overview
This project consisted of controlling a simulated mobile manipulator to carry a block from its initial configuration to a goal configuration. The simulation engine used was V-REP (now CoppeliaSim), and trajectory and kinematics calculations were done using MATLAB.
## The Robot
The mobile manipulator, called the "youBot", consists of a mobile base with four mecanum wheels and a 5R robot arm. Its configuration can be represented using the following 13 degrees of freedom: chassis phi, chassis x, chassis y, J1, J2, J3, J4, J5, W1, W2, W3, W4, gripper state. J1 to J5 are the arm joint angles and W1 to W4 are the four wheel angles.
<br>
<br>
<img src="youBot.png" width="700">
## Workflow
The MATLAB software first creates a reference trajectory that the youBot is meant to follow. It then performs odometry as well as feedback control calculations to move and simulate the robot as close as possible to the trajectory. During the trajectory, the robot picks-and-places a cube of known parameters in specified locations. The process can be separated into the following steps:
1. Creating a desired trajectory.
2. Initializing values and parameters that are used by functions, such as dimensions, max
speed, and timesteps.
3. Iterating through each step of the desired trajectory and:
1. Calculating control law to generate wheel and joint controls that move current configuration to desired configurations.
2. Feeding these controls to a function that creates and builds the actual trajectory.
3. Storing errors for later data visualization and analysis.
4. Plotting and exporting error data.
5. Exporting .csv file of actual trajectory (robot configuration as a function of time).
## Demos
The first demo, whose code can be found in the `results/best_run` directory, showcases a proper run of a pick-and-place trajectory:
![](results/best_run/demo.gif)
The second demo, whose code can be found in the `results/new_task` directory, showcases a proper run of an alternate pick-and-place trajectory:
![](results/new_task/demo.gif)
The third demo, whose code can be found in the `results/overshoot` directory, showcases a run in which the robot overshoots its trajectory target.
![](results/overshoot/demo.gif)
## Usage
The main script file is `code/runscript.m`. It asks the user for inputs that describe the desired trajectory and control gains. These input variables are specified in the `controller.txt` files in the `best_run`, `new_task`, and `overshoot` directories. Running the file outputs a `runscript.csv` file which contains the trajectory information for each degree of freedom of the robot at each timestep. This .csv file can be fed into a V-REP scene of the youBot to simulate its picking and placing of the block.
## Results
- `best_run`: This run exhibited very little error. The mobile manipulator was able to pick up, transport, and place down the cube very effectively.
<br>
<img src="results/best_run/Xerr_plot.jpg" width="500">
<br>
- `new_task`: Very low errors again, on an even longer trajectory.
<br>
<img src="results/new_task/Xerr_plot.jpg" width="500">
<br>
- `overshoot`: As mentioned in `overshoot/controller.txt`, increasing Kp too much (>2) led to unstable behavior (when keeping Ki at 0.8). This was an interesting way to observe how control gains can negatively affect the performance of a system. Best overshoot performance came when Kp = 1.98.
<br>
<img src="results/overshoot/good_overshoot_kp_1.98.jpg" width="500">
<br>
Success was found by:
1. Tuning the gain parameters Kp and Ki.
2. Tuning the length and speed of the reference trajectory segments so that the robot
wouldn’t drop a cube once it grabbed it or take too long grabbing it.
3. Increasing the parameter k (number of trajectory reference configurations per 0.01
seconds).
没有合适的资源?快使用搜索试试~ 我知道了~
四自由度matlab机器人代码-mobile-manipulation:模拟移动机械手拾取和放置物体
共104个文件
m:56个
csv:20个
ttt:8个
需积分: 44 25 下载量 42 浏览量
2021-06-20
07:05:56
上传
评论 6
收藏 91.84MB ZIP 举报
温馨提示
四自由度matlab机器人代码移动操作项目 ME 449 的最终项目:机器人操作,西北大学,2019 年秋季。 概述 该项目包括控制模拟移动机械手将块从其初始配置运送到目标配置。 使用的仿真引擎是 V-REP(现为 CoppeliaSim),轨迹和运动学计算使用 MATLAB 完成。 机器人 这款名为“youBot”的移动机械手由一个带有四个麦克纳姆轮的移动底座和一个 5R 机械臂组成。 其配置可以使用以下 13 个自由度表示:底盘 phi、底盘 x、底盘 y、J1、J2、J3、J4、J5、W1、W2、W3、W4、夹具状态。 J1 到 J5 是手臂关节角度,W1 到 W4 是四个车轮角度。 工作流程 MATLAB 软件首先创建一个参考轨迹,youBot 将遵循该轨迹。 然后执行里程计和反馈控制计算,以尽可能接近轨迹移动和模拟机器人。 在轨迹期间,机器人在指定位置拾取和放置已知参数的立方体。 该过程可以分为以下步骤: 创建所需的轨迹。 初始化函数使用的值和参数,例如维度、最大速度和时间步长。 迭代所需轨迹的每一步,并且: 计算控制律以生成将当前配置移动到所需配置的车轮和关节控制。 将这些
资源详情
资源评论
资源推荐
收起资源包目录
四自由度matlab机器人代码-mobile-manipulation:模拟移动机械手拾取和放置物体 (104个子文件)
demo.avi 44MB
demo.avi 23.14MB
demo.avi 14.69MB
milestone2.avi 2.17MB
Scene8_example.csv 537KB
runscript.csv 234KB
runscript.csv 192KB
runscript.csv 190KB
Xerr_list.csv 149KB
Xerr_list.csv 118KB
Scene6_example.csv 117KB
Xerr_list.csv 116KB
Scene4_example.csv 64KB
yb1.csv 14KB
yb3.csv 13KB
yb2.csv 13KB
yb5.csv 12KB
yb4.csv 12KB
Scene2_example.csv 11KB
Scene7_example.csv 7KB
nodes.csv 693B
edges.csv 523B
obstacles.csv 347B
path.csv 216B
demo.gif 6.38MB
demo.gif 1.7MB
demo.gif 1.12MB
.gitattributes 66B
.gitignore 9B
good_overshoot_kp_1.98.jpg 84KB
bad_overshoot_kp_1.99.jpg 80KB
Xerr_plot.jpg 80KB
too_little_overshot_kp_1.97.jpg 76KB
Xerr_plot.jpg 73KB
SimulateControl.m 6KB
ForwardDynamicsTrajectory.m 4KB
runscript.m 4KB
runscript.m 3KB
InverseDynamicsTrajectory.m 3KB
InverseDynamics.m 3KB
NextState.m 3KB
TrajectoryGenerator.m 3KB
ComputedTorque.m 3KB
IKinSpace.m 3KB
IKinBody.m 2KB
ForwardDynamics.m 2KB
CartesianTrajectory.m 2KB
ScrewTrajectory.m 2KB
MassMatrix.m 2KB
JointTrajectory.m 2KB
EndEffectorForces.m 2KB
VelQuadraticForces.m 2KB
GravityForces.m 2KB
ScrewTrajectory2.m 1KB
FeedbackControl_test.m 1KB
JacobianBody.m 1KB
MatrixExp6.m 1KB
FeedbackControl.m 1KB
JacobianSpace.m 1KB
EulerStep.m 1KB
FKinSpace.m 1KB
FKinBody.m 1011B
MatrixLog3.m 998B
MatrixLog6.m 882B
ProjectToSE3.m 855B
DistanceToSE3.m 820B
ProjectToSO3.m 802B
MatrixExp3.m 703B
NextStateRow.m 691B
DistanceToSO3.m 617B
ad.m 614B
Adjoint.m 603B
NextState_test.m 597B
QuinticTimeScaling.m 560B
AxisAng6.m 558B
TransInv.m 533B
CubicTimeScaling.m 500B
TransToRp.m 484B
ScrewToAxis.m 476B
AxisAng3.m 454B
RpToTrans.m 451B
se3ToVec.m 439B
VecTose3.m 437B
TestIfSE3.m 417B
so3ToVec.m 398B
VecToso3.m 394B
TestIfSO3.m 367B
RotInv.m 317B
NearZero.m 278B
Normalize.m 278B
README.md 4KB
youBot.png 2.06MB
Scene2_UR5_csv.ttt 1.67MB
Scene1_UR5.ttt 1.65MB
Scene4_youBot_csv.ttt 681KB
Scene6_youBot_cube.ttt 671KB
Scene3_youBot.ttt 661KB
Scene7_MTB_csv.ttt 467KB
Scene5_motion_planning.ttt 334KB
Scene8_gripper_csv.ttt 316KB
共 104 条
- 1
- 2
weixin_38648968
- 粉丝: 11
- 资源: 946
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0