Bien hemos visto algunas cosas básicas con el lenguaje de programación Visual, pero es importante destacar que desde c# podemos hacer todo lo que hacemos con el VPL, y sí, incluso correr simulaciones, es más podemos diseñar nuestro mundo desde C#. Así que les comentaré sobre los detalles que he encontrado que considero deben tomar en cuenta.
Para empezar y aclarar dudas, se necesitan librerías especiales? claro que sí, pero las tienes, una vez hayas instalado microsoft robotics ya las tienes para utilizarlas desde C# e incluso desde VB, así que para todos los que eran nuevos en el lenguaje de programación visual o pensaban que podrían hacerlo mejor programando desde código pues aqui está la respuesta. (cabe tener en cuenta que para poder correr una simulación debemos correr como administradores el visual studio)
Para empezar necesitamos llamar todo lo de robotics para simular, empezamos haciendo las referencias necesarias, podemos agregar referencias yendo a la parte derecha del visual studio, ver el panel de soluciones y en la rama de «References» damos click derecho y luego «add reference», agregaremos:
RoboticsCommon.DLL – Contains PhysicalModel namespace, with common type definitions for modeling physical robot properties.
PhysicsEngine.DLL – C++/CLI wrapper around native physics engine dll.
SimulationCommon.DLL – Common type definitions.
SimulationEngine.DLL – Rendering engine, simulation state management and service front end.
SimulationEngine.Proxy.DLL – Proxy for simulation engine state. Used only for loading engine as a partner.
Esas referencias personalmente las considero básicas para correr cosas de robótics en c#, también pueden agregar las de xna que tiene el robótics si desean hacer algo más complejo.
pueden obtenerlas en el bin de la carpeta de instalación de robotics, también es necesario en ocasiones importar algunas dlls de C:/Windows/Assembly:
Llamamos lo necesario:
using Microsoft.Ccr.Core;
using Microsoft.Dss.Core;
using Microsoft.Dss.Core.Attributes;
using Microsoft.Dss.ServiceModel.Dssp;
using Microsoft.Dss.ServiceModel.DsspServiceBase;
using System;
using System.Collections.Generic;
using Microsoft.Robotics.Simulation;
using Microsoft.Robotics.Simulation.Engine;
using engineproxy = Microsoft.Robotics.Simulation.Engine.Proxy;
using Microsoft.Robotics.Simulation.Physics;
using Microsoft.Robotics.PhysicalModel;
using System.ComponentModel;
Algo más para tener en cuenta es que no necesariamente es un windows form el proyecto aun si lo programamos sobre un proyecto de tipo windows form, necesitamos utilizar algo de robotics para correr la simulación así que en las propiedades de nuestra solución(click derecho Properties) en debug decimos que queremos correrlo desde un programa externo, este programa estaría ubicado en: C:\Users\Karen Liska\Microsoft Robotics Dev Studio 2008 R3\bin\DssHost32.exe, es lo que nos ayuda incluso a levantar nuestro nodo dss para correrlo.
Encontré además este bonito ejemplo que pueden poner en práctica, incluso pueden descargarlo.
http://www.helloapps.com/Developer/msrds/cs/cs_sim_04_drive_robot.html