#DENMPC
@file README.md
@Author Jan Dentler (jan.dentler@uni.lu)
University of Luxembourg
@date 26.October, 2017
@time 16:14h
@license GPLv3
@brief README
## Outline
DENMPC is providing an object-oriented real-time nonlinear model predictive control (NMPC) framework which has been developed at the Automation & Robotics Research Group http://wwwde.uni.lu/snt/research/automation_robotics_research_group at the University of Luxembourg.
The basic idea of DENMPC is to provide a fast nonlinear MPC that can adjust at runtime to different systems.
This refers to:
* Multi-agent systems that can change tasks, objectives and topology
* Fault-tolerant control, where the controller has to adapt to different system conditions
* Control prototyping, where you want to explore different scenarios without creating the underlying Optimal Control Problem (OCP) from scratch
In order to do so, DENMPC features an object-oriented modularization approach.
This allows structuring the control scenario into agents, constraints and couplings.
Out of these single components, DENMPC is dynamically creating the OCP at runtime.
As a result, agents, constraints and couplings can be added, removed, and parameters can be changed at runtime. This addition, respectively subtraction is triggered by events
which can be for example timer events, ROS-messages events, etc.
For very complex tasks, this can further be used to combine step chains with DENMPC,
to specialize the MPC for each task stage individually.
##Literature and Publication
DENMPC is open-source software, available under available under [https://github.com/snt-robotics/denmpc](https://github.com/snt-robotics/denmpc) and [https://github.com/DentOpt/denmpc](https://github.com/DentOpt/denmpc). The usage of DENMPC use regulated under the terms of the GPL3 license (Proprietary licences are available under request.). If you are using the software in your research work, you are supposed to cite one or more of the following references:
J. Dentler,
"Real-time Model Predictive Control of Cooperative Aerial Manipulation",
[http://orbilu.uni.lu/handle/10993/36965](http://orbilu.uni.lu/handle/10993/36965),
PhD Thesis, University of Luxembourg, July 2018
Jan Dentler, Somasundar Kannan, Souad Bezzaoucha, Miguel Angel Olivares-Mendez, and Holger Voos,
Model predictive cooperative localization control of multiple UAVs using potential function sensor constraints.
Autonomous Robots, March 2018, pages 1–26.
doi: 10.1007/s10514-018-9711-z, url: https://doi.org/10.1007/s10514-018-9711-z
J. Dentler, S. Kannan, M. A. O. Mendez and H. Voos,
"A modularization approach for nonlinear model predictive control of distributed fast systems",
24th Mediterranean Conference on Control and Automation (MED), Athens, Greece, 2016, pp. 292-297.
doi: 10.1109/MED.2016.7535973
Jan Dentler and Somasundar Kannan and Miguel Angel Olivares Mendez and Holger Voos,
"A real-time model predictive position control with collision avoidance for commercial low-cost quadrotors",
Proceedings of 2016 IEEE Multi-Conference on Systems and Control (MSC 2016), Argentina, Buenos Aires, 2016
If you are using the "Condensed Multiple Shooting Generalized Minimal Residuum Method (CMSCGMRES)" kernel contributed by the team of Prof. Dr. Toshiyuki OHTSUKA, please refer to:
Ohtsuka, T.,
“A Continuation/GMRES Method for Fast Computation of Nonlinear Receding Horizon Control,”
Automatica, Vol. 40, No. 4, Apr. 2004, pp. 563-574.
Seguchi, H., and Ohtsuka, T.,
“Nonlinear Receding Horizon Control of an Underactuated Hovercraft,”
International Journal of Robust and Nonlinear Control, Vol. 13, Nos. 3-4, Mar.-Apr. 2003, pp. 381-398.
## DENMPC features:
Nonlinear model predictive control (e.g. a quadrotor with nonlinear system dynamics)
Central control of single-agent systems (e.g. a single robot)
Central control of multi-agent systems (e.g. multiple robots that are interacting)
Object-oriented code to easily adapt it:
Controller: Interface class for implementations of controllers, e.g.CMSCGMRES
Agent: Interface class for implementations of agents, respective system or robot types, e.g. Quadrotor
Constraint: Interface class for implementations of single-agent constraints
Coupling: Interface class for implementations for coupling agents
Open-source code
## Installation
# Navigate to your ROS catkin workspace (e.g. catkin_ws):`
cd catkin_ws/src
#Clone repository
git clone https://github.com/DentOpt/denmpc.git
cd ..
#Build package
catkin_make
### To use the AR.Drone 2.0 scenario with the tum simulator
Install:
cd catkin_ws/src
git clone https://github.com/DentOpt/ardrone_simulator_gazebo7.git
cd ..
catkin_make
To run the AR.Drone 2.0 scenario in gazebo, run
roslaunch cvg_sim\_gazebo ardrone_testworld.launch
Launch drone (Takeoff) from commandline:
rostopic pub -1 /ardrone/takeoff std_msgs/Empty
The AR.Drone 2.0 simulator is configured to subscribe control commands under the topic "/cmd_vel".
The AR.Drone 2.0 pose is published under "/pose"
To control the AR.Drone 2.0 in with denmpc:
either to track center of UAV:
rosrun denmpc scenario_ardrone_pose_tracking_node
or to track with sensor constraint:
rosrun denmpc scenario_ardrone_sensor_tracking_node
and to send desired pose use rqt or commandline, e.g
rostopic pub /desiredpose geometry_msgs/PoseStamd '{header: {stamp: now, frame_id: "map"}, pose: {position: {x: 0.0, y: 0.0, z: 2.0}, orientation: {x: 0.0, y: 0.0, z: 0.0, w: 1.0}}}'
### To use the Turtlebot scenario
Install:
cd catkin_ws/src
sudo apt-get install
git clone https://github.com/ros/ros_tutorials.git #Install Turtlesim
git clone https://github.com/DentOpt/denmpc.git -b tutorial_turtlesim #Install DENMPC branch
cd ..
catkin_make
Run:
roscore #run roscore
rosrun turtlesim turtlesim_node #Run Turtlesim in separate tab
rosrun denmpc scenario_scenario_node #Run denmpc in separate tab
That's it!
You will see how the turtle DENMPC moves from its initial position to the position x=1 y=1.
You can give any desired position by publishing it to the /turtle1/desiredpose.
For example, for the new target x=5, y=5 type
`rostopic pub /turtle1/desiredpose turtlesim/Pose "{x: 5.0, y: 5.0, theta: 0.0, linear_velocity: 0.0, angular_velocity: 0.0}"`
没有合适的资源?快使用搜索试试~ 我知道了~
C++基于事件的在线自适应快速非线性模型预测控制框架+项目源码+文档说明+代码注释
共36个文件
cpp:14个
h:12个
txt:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 63 浏览量
2024-11-13
16:45:20
上传
评论
收藏 73KB ZIP 举报
温馨提示
<项目介绍> - DENMPC 的基本思想是提供一种快速非线性 MPC,可以在运行时适应不同的系统。这指的是: 可以改变任务、目标和拓扑的多智能体系统 容错控制,其中控制器必须适应不同的系统条件 控制原型,您希望探索不同的场景,而无需从头开始创建底层最优控制问题 (OCP) - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
基于事件的在线自适应快速非线性模型预测控制框架.zip (36个子文件)
denmpc-master
CMakeLists.txt 2KB
doc
rosdoc.yaml 130B
wiki 2KB
mainpage.dox 1KB
src
Scheduler.h 2KB
MathLib.h 13KB
CMakeLists.txt 2KB
user_generated
Ardrone_20170227.cpp 11KB
CollisionAvoidanceCoupling_20170227.h 1KB
CollisionAvoidanceCoupling_20170227.cpp 12KB
OrientationConstraint_20170227.cpp 3KB
OrientationConstraint_20170227.h 1KB
Ardrone_20170227.h 7KB
controller
Cmscgmres.h 14KB
Controller.h 31KB
Controller.cpp 64KB
Cmscgmres.cpp 30KB
Constraint.cpp 838B
Event.cpp 5KB
Event.h 6KB
Agent.cpp 3KB
Coupling.h 8KB
MathLib.cpp 5KB
Constraint.h 7KB
Coupling.cpp 665B
Indexing.h 4KB
user_scenarios
ardrone_pose_tracking.cpp 1KB
ardrone_sensor_tracking.cpp 2KB
scenario.cpp 3KB
Agent.h 14KB
Scheduler.cpp 8KB
LICENSE 34KB
package.xml 1KB
.gitignore 270B
msg
VrepInfo.msg 115B
README.md 6KB
共 36 条
- 1
资源评论
程序员无锋
- 粉丝: 3683
- 资源: 2320
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 木材钢管检测17-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 回文判断(C语言)(不必理会)
- 无人机检测24-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- mybatisplus自定义xml文件
- 严蔚敏《数据结构》(C语言版):核心知识点梳理与考研真题详解(自用)(不必理会)
- 无人机检测23-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 1733240052845179_downFile.do
- 无人机检测2-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 华为机架服务器iBMC (V300 及以上) 用户指南
- linux内核学习很好的书籍,建议初学者都去阅读一下
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功