团队项目开发日志--(第二篇)

团队项目进度

1.根据项目需求设计头文件

1.难点一:

  • 首先由于对C++语言不是很熟练,只有大一学习C++的基础。最近使用或接触更多的是C#,还好有很多类似的地方。
    开始,必然是查找相关机器人编程的例子。所以便开始在Github上查找,相关的例子倒是挺多的,但是没有一个能看懂的。Github上的例子大多没有详细的说明,而且大部分程序都没有注释。

2.解决方法:

  • 鉴于没有例子可以参考,只能靠自己,所以就先看了几天C++课本,把原来学习的内容补回来。其中的重点当然是类的设计和使用

3.设计头文件

1)机器人子系统头文件:

#pragma once
#ifndef ROBITSYSTEM_H
#define ROBOTSYSTEM_H


namespace IceHockeyGame
{
	class RobotSystem
	{
	
	protected:
		double position_x;             //机械手x坐标
		double position_y;             //机械手y坐标
		double velocity_x;             //机械手x方向速度
		double velocity_y;             //机械手y方向速度
		bool Request;                  //是否接受指指令
		bool Done;                     //是否已完成运动指令

	public:

		RobotSystem(){}
		
		~RobotSystem(){}

		
		/**
		*@return robot hand position
		*/
		virtual double GetPositionX(void)=0;
		/**
		*@return robot hand velocity
		*/
		virtual double GetVelocityX(void)=0;
		/**
		*@return robot hand position
		*/
		virtual double GetPositionY(void)=0;
		/**
		*@return robot hand velocity
		*/
		virtual double GetVelocityY(void)=0;
	};
}
#endif //ROBOTSYSTEM_H

2)二轴机械手控制头文件

#pragma once

#ifndef ROBITSYSTEM_ROBITCOMMAND_H
#define ROBITSYSTEM_ROBOTCOMMAND_H

#include"RobotSystem.h"
namespace IceHockeyGame{
	namespace RobotSubSystem{
		class RobotCommand :public RobotSystem
		{
		protected:
			double targ_position_x; //目标点的x坐标
			double targ_position_y; //目标点的y坐标
			double targ_velocity_x; //目标点的x方向速度
			double targ_velocity_y; //目标点的y方向速度
			double targ_time;       //到达目标点所需时间

		public:
			RobotCommand();

			

			~RobotCommand(){}

			virtual void InitTrajectoryPlan(double tpx, double tpy, double tvx, double tvy, double tt)=0;

			/**
			*@set the target position
			*/
			void SetPosition(double x, double y);
			/**
			*@set the target velocition
			*/
			void SetVelocity(double x, double y);
			/**
			*@set the target time
			*/
			void SetTime(double time);

		};

	}
}
#endif //ROBITSYSTEM_ROBOTCOMMAND_H

其它代码内容较多,不再放在博客上,均存放在Github仓库。

2.项目难点及计划

  • 1.机器人子系统的基本架构已经搞清楚了,基本实现了头文件的设计和简单的源文件的设计。
  • 2.下一步要做的主要内容是完善源文件,更好的设计类方法的设计。
  • 3.插补的选择上的问题:轨迹插补或者时间分割插补。总体来说时间分割插补更简单,但是不能保证有规律的轨迹。
posted @ 2017-01-05 19:28  shenghust  阅读(206)  评论(0编辑  收藏  举报