Add Kuka arm to Pioneer
Is there an easy way to attach a kukaLBR3 to a pioneer base to build up a mobile manipulator?
I tried several ways but the arm doesn't move with the pioneer.
Is there an easy way to attach a kukaLBR3 to a pioneer base to build up a mobile manipulator?
I tried several ways but the arm doesn't move with the pioneer.
I just wanna ask if its now possible (1.5 final) to add a kuka arm on a pioneer?
I tried to do it analog to inserting sensors to Pioneer but it doesnt work. The arm stays fixed at its initial position.
PS: How can I use codeHighligting in this circumstantial edito?
Pioneer3DX _robotBaseEntity;
void AddPioneer3DXRobot(Vector3 position)
{
_robotBaseEntity = CreateMotorBase(ref position);
}
private Pioneer3DX CreateMotorBase(ref Vector3 position)
{
// use supplied entity that creates a motor base
// with 2 active wheels and one caster
Pioneer3DX robotBaseEntity = new Pioneer3DX(position);
// specify mesh.
robotBaseEntity.State.Assets.Mesh = "Pioneer3dx.bos";
// specify color if no mesh is specified.
robotBaseEntity.ChassisShape.State.DiffuseColor = new Vector4(0.8f, 0.25f, 0.25f, 1.0f);
// the name below must match manifest
robotBaseEntity.State.Name = "P3DXMotorBase";
// Start simulated arcos motor service
drive.Contract.CreateService(ConstructorPort,
);
return robotBaseEntity;
}
arm.ArticulatedArmState _cachedArmState;
KukaLBR3Entity armEntity;
IEnumerator<ITask> AddArticulatedArm()
{
Vector3 position = new Vector3(0, 1.25f, 1);
// Create an instance of our custom arm entity.
// Source code for this entity can be found under
// Samples\Simulation\Entities\Entities.cs
armEntity = new KukaLBR3Entity(position);
// Name the entity
armEntity.State.Name = "LBR3Arm";
// Insert entity in simulation.
//SimulationEngine.GlobalInstancePort.Insert(armEntity);
_robotBaseEntity.InsertEntity(armEntity);
// create simulated arm service
DsspResponsePort<CreateResponse> resultPort = CreateService(
// asynchronously handle service creation result.
yield return Arbiter.Choice(resultPort,
delegate(CreateResponse rsp)
{
_armServicePort = ServiceForwarder<arm.ArticulatedArmOperations>(rsp.Service);
},
delegate(Fault fault)
{
LogError(fault);
});
if (_armServicePort == null)
yield break;
// we re-issue the get until we get a response with a fully initialized state
do
{
yield return Arbiter.Receive(false, TimeoutPort(1000), delegate(DateTime signal) { });
_armServicePort.Get(new GetRequestType()),
delegate(arm.ArticulatedArmState state)
{
delegate(Fault f)
{
LogError(f);
});
// exit on error
if (_cachedArmState == null)
yield break;
} while (_cachedArmState.Joints == null);
}
greets
Mike
Check out the new Kuka Educational Framework, in here is the source code (and a lot of examples of the Kuka arm) for placing this on a robot
Erik
Hi, i'm wandering how to do something similar.
I need to attach a Lynxmotion SES arm to an iRobot Create base. Me and my team have already done a 3D model that we added to an scenario, the base with the arm and everything moves around the world, the problem that we have is that the upper part of the robot acts as a "ghost"(i mean, if the "head" hits a table or something, it doesn't move the table as it should, but it crosses the table like a ghost). In addition, of course, we also need to move the arm and we haven't been able to do it.
We belive that a solution could be editing the iRobot Create entity that comes in the file C:\Microsoft Robotics Studio (1.5)\samples\simulation\Entities\Entities.cs, but we aren't quite sure about that theory.
Could somebody tell me his opinion? Are we wasting our time going that way or it seems something workable?
All suggestions or opinions are welcome
Thank you very much